事件處理分爲DOM0,DOM2,DOM3事件。html
DOM0就是直接經過 onclick寫在html裏面的事件, 好比:<input onclick="alert(1)" />,或者經過獲取id的方式在js中直接添加onclick,好比document.getElementById("id").onclick。不可以添加多個事件方法,只顯示最後一個。瀏覽器
DOM2是經過addEventListener綁定的事件, 還有IE下的DOM2事件經過attachEvent綁定。IE的事件流是冒泡, 從裏面往上面冒。而現代瀏覽器默認冒泡,若將addEventListener的第三個參數設置爲false,則爲捕獲。能夠進行事件累加,addEventListener是DOM2,但attachEvent不是DOM2,是IE本身的方法,雖能夠實現事件累加,但順序是反着的。htm
好比以下代碼: if(document.addEventListener){ //addEventListener是DOM2,
p1.addEventListener("click",function(){
alert("hello"); //現代瀏覽器,先顯示hello,後顯示hi
},true); //true - 事件句柄在捕獲階段執行;false- 默認。事件句柄在冒泡階段執行
p1.addEventListener("click",function(){
alert("hi");
},true);
}else{ //兼容IE瀏覽器,此方法不是DOM2,能夠添加多種事件方法,可是先顯示hi再顯示hello
p1.attachEvent("onclick",function(){
alert("hello");
});
p1.attachEvent("onclick",function(){
alert("hi");
});
}事件