1. 程式人生 > 實用技巧 >事件解綁

事件解綁

頁面重新整理後,點選div,能執行函式,說明這個事件被存到了記憶體中 因為事件點選一次過後,還能點選,記憶體中存的事件一直沒有刪除,一直停留在記憶體中 對於記憶體來說,就是一種資源浪費 解綁:將事件取消掉,對資源的一種節省
var box = document.getElementsByTagName('div')[0];
 box.onclick = function(){
     console.log("點選了div");

     box.onclick = null // 事件解綁
 }

addEventListener對應著有一個解綁的方法 - removeEventlistener - 匿名函式解綁不了

box.addEventListener('click',function(){
     console.log("點選了div");
     box.removeEventListener('click',function(){
         console.log("點選了div");
         box.removeEventListener('click',fn)
     })
 })

封裝解綁函式

function removeEvent(ele,type,handler){
    if(ele.removeEventListener){
        ele.removeEventListener(type,handler)
    }
else if(ele.detachEvent){ ele.detachEvent('on'+type,handler) }else{ ele['on' + type] = null } }