js事件繫結,事件流,事件代理的一些理解
阿新 • • 發佈:2019-02-11
一、事件繫結:
事件繫結的三種方法:
1、在DOM中直接繫結:
//<ul id="parent-list" onclick="printName(this)"> //this指當前發生時間的html元素
2、在js程式碼中繫結:
var node = document.getElementById("parent-list");
node.onclick = function(){
console.log(this); //this指當前發生時間的html元素
}
3、繫結監聽函式:(addEventListener 或者 attachEvent,可以繫結多個監聽事件)
function addEvent(obj, type, handle){
try{
obj.addEventListener(type, handle, false);
}
catch(e){
try{
obj.attachEvent('on'+type, handle);
}
catch(e){
obj['on' + type] = handle;
}
}
}
比較相容的寫法:不過在addEventListener 或者 attachEvent都不支援的情況下只能繫結一個函式,不能繫結多個。
!!!注意:
1、addEventListener 可以再同一個元素上繫結很多個事件
2、
3、
二、事件流:
捕獲:所繫結的相同事件從祖先元素到子元素觸發。
冒泡:所繫結的相同事件從子元素到祖先元素觸發。
三、事件代理:
應用場景:同一個ul下如果有很多個li標籤