0級(jí)DOM
分為2個(gè):一是在標(biāo)簽內(nèi)寫onclick事件
二是在JS寫onlicke=function(){}函數(shù)
1)
<input id="myButton" type="button" value="Press Me" onclick="alert('thanks');" >
document.getElementById("myButton").onclick = function () {
alert('thanks');
}
2級(jí)DOM
只有一個(gè):監(jiān)聽方法宅倒,有兩個(gè)方法用來添加和移除事件處理程序:addEventListener()和removeEventListener()。
它們都有三個(gè)參數(shù):第一個(gè)參數(shù)是事件名(如click)葡盗;
第二個(gè)參數(shù)是事件處理程序函數(shù);
第三個(gè)參數(shù)如果是true則表示在捕獲階段調(diào)用,為false表示在冒泡階段調(diào)用。
addEventListener():可以為元素添加多個(gè)事件處理程序帜矾,觸發(fā)時(shí)會(huì)按照添加順序依次調(diào)用。
removeEventListener():不能移除匿名添加的函數(shù)屑柔。
document.getElementById("myTest").attachEvent("onclick", function(){alert(1)});
//等價(jià)于
document.getElementById("myTest").addEventListener("click", function(){alert(1)}, false);
只有2級(jí)DOM包含3個(gè)事件:事件捕獲階段屡萤、處于目標(biāo)階段和事件冒泡階段
<span>
<a></a>
</span>
點(diǎn)擊a后capturing(捕捉)階段事件傳播會(huì)從document-> span->a,然后發(fā)生在a掸宛,最后bubbling(冒泡)階段事件傳播會(huì)從a->span->document 死陆。
1.事件冒泡(常用)
IE中采用的事件流是事件冒泡,先從具體的接收元素唧瘾,然后逐步向上傳播到不具體的元素措译。
2.事件捕獲(少用)
Netscapte采用事件捕獲,先由不具體的元素接收事件饰序,最具體的節(jié)點(diǎn)最后才接收到事件领虹。
3.DOM事件流