可以选择是事件流。可绑定多个同类事件。事件名可以组成字符串。
- <!DOCTYPE html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <div id="content"></div>
- </body>
- </html>
添加监听的事件
-
- let content = document.getElementById("content");
- content.addEventListener("click", function () {
- console.log("seriousLose");
- }, false)
-
- content.addEventListener("click", function () {
- console.log("hello seriousLose");
- }, false)
阻止默认事件preventDefault()
- document.body.addEventListener('touchmove', function (event) {
- event.preventDefault();
- },false);
阻止事件冒泡stopPropagation()
<div id="div"><button id="btn">按钮</button></div>
- function showType(event) {
- alert(event.type);
- event.stopPropagation();
- }
-
- function showDiv() {
- alert("div");
- }
- document.getElementById("btn").addEventListener("click", showType);
- document.getElementById("div").addEventListener("click", showDiv);
移出事件
- function add() {
- console.log("I me here seriousLose");
- }
- content.addEventListener("mouseenter", add, false);
- content.removeEventListener("mouseenter", add, false);
<aside> 💡 removeEventListener 需要知道你需要移出的是哪个事件处理函数。匿名函数丢弃了自身函数名,是移出不了。
</aside>
- content.addEventListener("click", function () {
- console.log("hello seriousLose");
- }, false)
-
- // 是没有用的,并不能被移出
- content.removeEventListener("click", function () {
- console.log("hello seriousLose");
- }, false), false);
<aside> 💡 IE9以下的IE浏览器不支持 addEventListener()和removeEventListener(),使用 attachEvent()与detachEvent() 代替, 因为IE9以下是不支持事件捕获的,所以也没有第三个参数,第一个事件名称前要加on
</aside>
demos/DW-dom.html at main · SeriousLose/demos