一哼绑、事件綁定
事件綁定又稱事件委托岩馍,事件代理,可以給同一個(gè)div綁定多個(gè)事件
非IE:
element.addEventListener("click",fn,false) 事件綁定
element.removeEventLisenter("click",fn,false) 解除綁定
IE:
element.attachEvent("onclick",fn) 事件綁定
element.detachEvent("onclick",fn) 解除綁定
綁定事件兼容寫法:(移除同理)
function addEvent(element,type,fn){
if(element.addEventListener){
element.addEventListener(type,fn,false)
}else if(element.attachEvent){
element.attachEvent("on"+type,fn);
}else{
target["on"+type]=fn;
}
}
二抖韩、js事件捕獲和冒泡
1.什么是事件冒泡:
事件按照從最特定的事件目標(biāo)到最不特定的事件目標(biāo)(document對(duì)象)的順序觸發(fā)蛀恩。(默認(rèn)的事件處理程序,從子級(jí)到父級(jí))
2.什么是事件捕獲:
事件從最不精確的對(duì)象(document 對(duì)象)開始觸發(fā)茂浮,然后到最精確(也可以在窗口級(jí)別捕獲事件双谆,不過(guò)必須由開發(fā)人員特別指定)。(捕獲型事件先發(fā)生席揽,由父級(jí)到子級(jí))
3.事件綁定中的false,true
(1)作用:第3個(gè)參數(shù)useCapture是一個(gè)Boolean值顽馋,用來(lái)設(shè)置事件是在事件捕獲時(shí)執(zhí)行,還是事件冒泡時(shí)執(zhí)行
(2)true:事件捕獲幌羞,父級(jí)元素先觸發(fā)寸谜,子級(jí)元素后觸發(fā),即div先觸發(fā)属桦,p后觸發(fā)
(3)false:事件冒泡熊痴,子級(jí)元素先觸發(fā),父級(jí)元素后觸發(fā)地啰,即p先觸發(fā)愁拭,div后觸發(fā)。
4.阻止冒泡:
ev.cancelBubble=true;
ev.stopPropagation();
5.阻止冒泡的兼容寫法:
function stopBubble(e){
if(e&&ev.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;
}
}