日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )

發布時間:2024/9/27 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JS用addEventListener添加事件監聽方法后,可以用removeEventListener來解除監聽:

element.removeEventListener(event, myFunction)

注意:兼容:?IE 8 及更早 IE 版本,Opera 7.0及其更早版本不支持 addEventListener() 和 removeEventListener() 方法。但是,對于這類瀏覽器版本可以使用 detachEvent() 方法來移除事件句柄:

element.attachEvent(event, function);

element.detachEvent(event, function);

var x = document.getElementById("myBtn");

if (x.addEventListener) { // 所有主流瀏覽器,除了 IE 8 及更早版本

x.addEventListener("click", myFunction);

} else if (x.attachEvent) { // IE 8 及更早版本

x.attachEvent("onclick", myFunction);

}

注意:解除綁定事件的時候一定要用函數的句柄,把整個函數寫上是無法解除綁定的。

錯誤寫法:

btn.addEventListener("click",function(){

alert(11);

});

btn.removeEventListener("click",function(){

alert(11);

});

正確寫法:

btn.addEventListener("click",eventTwo);

btn.removeEventListener("click",eventOne);

總結:對函數進行封裝后的監聽事件如下,兼容各大主流瀏覽器。

/*

* addEventListener:監聽Dom元素的事件

*

* target:監聽對象

* type:監聽函數類型,如click,mouseover

* func:監聽函數

*/

function addEventHandler(target,type,func){

if(target.addEventListener){

//監聽IE9,谷歌和火狐

target.addEventListener(type, func, false);

}else if(target.attachEvent){

target.attachEvent("on" + type, func);

}else{

target["on" + type] = func;

}

}

/*

* removeEventHandler:移除Dom元素的事件

*

* target:監聽對象

* type:監聽函數類型,如click,mouseover

* func:監聽函數

*/

function removeEventHandler(target, type, func) {

if (target.removeEventListener){

//監聽IE9,谷歌和火狐

target.removeEventListener(type, func, false);

} else if (target.detachEvent){

target.detachEvent("on" + type, func);

}else {

delete target["on" + type];

}

}

var eventOne = function(){

alert("第一個監聽事件");

}

function eventTwo(){

alert("第二個監聽事件");

}

window.onload = function(){

var bindEventBtn = document.getElementById("bindEvent");

//監聽eventOne事件

addEventHandler(bindEventBtn,"click",eventOne);

//監聽eventTwo事件

addEventHandler(bindEventBtn,"click",eventTwo );

//監聽本身的事件

addEventHandler(bindEventBtn,"click",function(){

alert("第三個監聽事件");

});

//取消第一個監聽事件

removeEventHandler(bindEventBtn,"click",eventOne);

//取消第二個監聽事件

removeEventHandler(bindEventBtn,"click",eventTwo);

}

更多前端知識請瀏覽前端園地其它文章^_^!

總結

以上是生活随笔為你收集整理的js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。