知识点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 = ;
var p2 = ;
document.getElementById("myBtn").addEventListener("click", function() {
console.log("里面")
myFunction(p1, p2);
},false);
document.getElementById("middle").addEventListener("click", function() {
console.log("中间")
myFunction(,);
},true);
document.getElementById("out").addEventListener("click", function() {
console.log("外面")
myFunction(,);
},false);
function myFunction(a, b) {
var result = a * b;
document.getElementById("demo").innerHTML = result;
}