饑人谷_李棟
1.EventTarget接口
2.事件的傳播
3.事件代理
4.事件屬性
1.EventTarget接口
1.addEventListener() 定義一個特定事件的監(jiān)聽函數(shù)
target.addEventListener(名稱,監(jiān)聽函數(shù),false冒泡/true捕獲)
注庭再,1.為了便于兼容 false最好不要省
2.removeEventListener() 用來移除addEventListener方法添加的監(jiān)聽函數(shù)
注意飒箭,必須和addEventLisenter方法 參數(shù)完全一致,并且在同一個元素節(jié)點上
target.removeEventListener(名稱,監(jiān)聽函數(shù)膝迎,false/true)
3.dispatchEvent() 在當前節(jié)點觸發(fā)指定事件返回boolean值
target.dispatchEvent(event)
2.事件的傳播
1.捕獲階段(紅):從window對象->目標節(jié)點
依次為:window、document靡馁、html呢堰、body、div
2.目標階段(藍):目標節(jié)點上觸發(fā)
3.冒泡階段(綠):從目標節(jié)點->window對象
依次為:div咧欣、body浅缸、html、document魄咕、window
3.事件的代理
把子節(jié)點的監(jiān)聽函數(shù) 定義到 父節(jié)點上
var ul = document.querySelector('ul');
ul.addEventListener('click', function(event) {
if (event.target.tagName.toLowerCase() === 'li') {
// XXX
}
});
4.事件的屬性
1.bubbles:事件是否冒泡
2.eventPhase:返回事件所處節(jié)點(int)
依次為0:沒發(fā)生1:捕獲2:目標3:冒泡
3.cancelable:事件是否可以取消
4.defaultPrevented:是否調(diào)用過preventDefault
5.currentTarget:返回 事件 當前所在的 節(jié)點
6.target:返回 觸發(fā)事件 的節(jié)點
7.type:返回字符串
8.detail:返回 表示 事件性息 的數(shù)值
9.timeStamp:返回毫秒時間戳(chuo)
10.isTrusted:事件是否可以信任
11.preventDefault:取消事件默認行為
12.stopPropagation():阻止再觸發(fā)別的節(jié)點的監(jiān)聽函數(shù)
13.stopImmediatePropagation():阻止同一事件的其他監(jiān)聽函數(shù)被調(diào)用
注意衩椒,上文中,是否代表返回boolean值
具體內(nèi)容參照阮一峰的JavaScirpt教程筆記
未完待續(xù)...