事件解綁
阿新 • • 發佈:2021-01-11
頁面重新整理後,點選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 } }