JS監(jiān)聽事件的疊加和移除功能
html DOM元素有很多on開頭的監(jiān)聽事件,如onload、onclick等,見DOM事件列表。但是同一種事件,后面注冊的會覆蓋前面的:
window.onresize = function(){ alert(1); } window.onresize = function(){ alert(2); } // 改變窗口大小時,只會彈出2
addEventListener監(jiān)聽
利用addEventListener添加監(jiān)聽事件,可以重復(fù)添加,并不會互相覆蓋:
window.addEventListener("resize",function(){ alert(1) }) window.addEventListener("resize",function(){ alert(2) }) // 改變窗口大小時,先后彈出1和2
注意這里面的事件是不帶"on"前綴的。
removeEventListener移除監(jiān)聽
removeEventListener跟addEventListener相對應(yīng),用于移除事件監(jiān)聽。
如果要移除事件句柄,addEventListener()
的執(zhí)行函數(shù)必須使用外部具名函數(shù),匿名函數(shù)事件是無法移除的。
// 匿名函數(shù)事件無法移除 window.addEventListener("resize",function(){ alert(1) }) // 監(jiān)聽具名函數(shù)事件 function myResize(){ alert(2) } window.addEventListener("resize",myResize) // 移除事件監(jiān)聽 window.removeEventListener("resize",myResize)
總結(jié)
以上所述是小編給大家介紹的JS監(jiān)聽事件的疊加和移除,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
BootStrap Fileinput插件和Bootstrap table表格插件相結(jié)合實現(xiàn)文件上傳、預(yù)覽、提交的導(dǎo)入E
這篇文章主要介紹了BootStrap Fileinput插件和Bootstrap table表格插件相結(jié)合實現(xiàn)文件上傳、預(yù)覽、提交的導(dǎo)入Excel數(shù)據(jù)操作步驟,需要的朋友可以參考下2017-08-08全面解析JavaScript中offsetLeft、offsetTop的用法
本文主要介紹了全面解析JavaScript中offsetLeft、offsetTop的用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2023-04-04