addEventListener() 方法,事件监听

时间:2021-05-25 04:36:50

知识点1:addEventListener() 方法,事件监听,可以使用 removeEventListener() 方法来移除事件的监听。

语法

element.addEventListener(event, function, useCapture);

第一个参数是事件的类型 (如 "click" 或 "mousedown").

第二个参数是事件触发后调用的函数。

第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的,默认是false。

注意:不要使用 "on" 前缀。 例如,使用 "click" ,而不是使用 "onclick"。

 

 

知识点2:当一个事件发生时,分为三个阶段:

捕获阶段 从根节点开始顺序而下至目标节点,检测每个节点是否注册了事件处理程序。如果注册了事件处理程序,并且 useCapture 为 true,则调用该事件处理程序。(IE 中无此阶段。)

目标阶段 触发在目标对象本身注册的事件处理程序,也称正常事件派发阶段。

冒泡阶段 从目标节点到根节点,检测每个节点是否注册了事件处理程序,如果注册了事件处理程序,并且 useCapture 为 false,则调用该事件处理程序。

<div  id="out" style="width:500px;height:200px;margin:100px auto;border:1px solid #ccc;">
      <div id="middle" style="width:300px;border:1px solid #ccc;margin: 20px auto;height:100px">
            <div id="myBtn" style="width:200px;border:1px solid #ccc;margin: 20px auto;">测试监听事件</div>
      </div>
      <div id="demo"></div>
</div>

js

var p1 = 5;
        var p2 = 7;
        document.getElementById("myBtn").addEventListener("click", function() {
            console.log("里面")
            myFunction(p1, p2);
        },false);
        document.getElementById("middle").addEventListener("click", function() {
            console.log("中间")
            myFunction(3,4);
        },true);
        document.getElementById("out").addEventListener("click", function() {
            console.log("外面")
            myFunction(3,4);
        },false);
        function myFunction(a, b) {
            var result = a * b;
            document.getElementById("demo").innerHTML = result;
        }