為什么刪除function()沒作用???問題在文中最后面有注釋的地方,求解!
var eventUtil = {
//添加句柄
addHandler:function(element, type, handler) {
if(element.addEventListener) {
element.addEventListener(type, handler, false); ? //如果支持DOM2級(jí)
}
else if(element.attachEvent) {
element.attachEvent('on'+type, handler); ? ?//支持IE
}
else {
element['on'+type] = handler; ? ? ? ? ? ? //DOM0級(jí)
}
},
//刪除句柄
removeHandler:function(element, type, handler) {
if(element.removeEventListener) {
element.removeEventListener(type, handler, false); ??
}
else if(element.detachEvent) {
element.detachEvent('on'+type, handler); ? ?
}
else {
element['on'+type] = null; ? ? ? ? ? ??
}
}
}
//調(diào)用封裝好的對(duì)象
eventUtil.addHandler(btn1, 'click', showMe);
eventUtil.removeHandler(btn1, 'click', showMe);
eventUtil.addHandler(btn2, 'click', function(){alert('我是' + this.value)});
eventUtil.removeHandler(btn2, 'click', function(){alert('我是' + this.value)});//這個(gè)沒反應(yīng)???
2016-06-07
因?yàn)椋瑀emoveEventListener()移除時(shí)傳入的參數(shù)與添加處理程序時(shí)使用的參數(shù)相同。匿名函數(shù)無(wú)法移除。
element, type, handler,這三個(gè)參數(shù),element:要在該元素上清除事件.type:事件類型.是鍵盤事件或是鼠標(biāo)事件,handler:事件名稱.函數(shù)的名稱。
function Alert(){alert('我是' + this.value)}
eventUtil.addHandler(btn2, 'click', Alert); //添加
eventUtil.removeHandler(btn2, 'click', Alert); ?//刪除