更新時間:2024-04-09 14:10:01作者:admin3
在之前的一篇經驗中介紹了使用attchEvent和detachEvent添加、注銷事件;
火狐和其他瀏覽器都不支持,幸運的是他們都支持W3C標準的:
addEventListener和removeEventListener方法
形如:element.addEventListener(type,listener,useCapture);//添加事件
element.removeEventListener(type,listener,useCapture);//注銷事件
這里需要和attchEvent相區別,event直接寫事件名即可,如click事件->object.addEventListener(click,listener,useCapture);
例:
JS:
window.onload = function(){
var btn1 = document.getElementById(btn1);
btn1.addEventListener(click,test1,false);
var btn2 = document.getElementById(btn2);
btn2.addEventListener(click,function(){
btn1.removeEventListener(click,test1,false);
},false);
}
function test1(){
alert(111);
}
--------------------------------------------
html:
測試addEventListener
測試removeEventListener
-------------------------------------------------------------------------------
再將上面的例子改一下:
JS:
window.onload = function(){
var btn1 = document.getElementById(btn1);
btn1.addEventListener(click,test1,false);
btn1.addEventListener(click,test2,false);
btn1.addEventListener(click,test3,false);
var btn2 = document.getElementById(btn2);
btn2.addEventListener(click,function(){
btn1.removeEventListener(click,test1,false);
},false);
}
function test1(){
alert(111);
}
function test2(){
alert(222);
}
function test3(){
alert(333);
}
HTML:
測試addEventListener
測試removeEventListener
現象:頁面打開之后,點擊【測試addEventListener】,依次彈出111,222,333
說明,使用addEventListener添加事件后按照綁定順序執行
再點擊【測試removeEventListener】,則會發現不再彈“111”,即test1事件被注銷