为了账号安全,请及时绑定邮箱和手机立即绑定

为什么删除function()没作用???问题在文中最后面有注释的地方,求解!

var eventUtil = {

//添加句柄

addHandler:function(element, type, handler) {

if(element.addEventListener) {

element.addEventListener(type, handler, false);   //如果支持DOM2级

}

else if(element.attachEvent) {

element.attachEvent('on'+type, handler);    //支持IE

}

else {

element['on'+type] = handler;             //DOM0级

}

},

//删除句柄

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;             

}

}

}

//调用封装好的对象

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)});//这个没反应???


正在回答

1 回答

因为,removeEventListener()移除时传入的参数与添加处理程序时使用的参数相同。匿名函数无法移除。

element, type, handler,这三个参数,element:要在该元素上清除事件.type:事件类型.是键盘事件或是鼠标事件,handler:事件名称.函数的名称。

function Alert(){alert('我是' + this.value)}

eventUtil.addHandler(btn2, 'click', Alert); //添加

eventUtil.removeHandler(btn2, 'click', Alert);  //删除




0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么删除function()没作用???问题在文中最后面有注释的地方,求解!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信