js 監聽事件的疊加和移除


  html DOM元素有很多on開頭的監聽事件,如onload、onclick等,見DOM事件列表。但是同一種事件,后面注冊的會覆蓋前面的:

window.onresize = function(){
	alert(1);
}
window.onresize = function(){
	alert(2);
}
// 改變窗口大小時,只會彈出2

 

addEventListener監聽

  利用addEventListener添加監聽事件,可以重復添加,並不會互相覆蓋: 

window.addEventListener("resize",function(){
	alert(1)
})
window.addEventListener("resize",function(){
	alert(2)
})
// 改變窗口大小時,先后彈出1和2

  注意這里面的事件是不帶"on"前綴的。

 

removeEventListener移除監聽

  removeEventListener跟addEventListener相對應,用於移除事件監聽。

  如果要移除事件句柄,addEventListener() 的執行函數必須使用外部具名函數,匿名函數事件是無法移除的。

// 匿名函數事件無法移除
window.addEventListener("resize",function(){
	alert(1)
})

// 監聽具名函數事件
function myResize(){
	alert(2)
}
window.addEventListener("resize",myResize)
// 移除事件監聽
window.removeEventListener("resize",myResize)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM