如果一个元素,没有用addEventListener方法绑定一个单击事件,而是直接xx.onclick=
function(){}这样子写了一个单击事件,那怎么移除这个元素的单击事件呢,
removeEventListener方法没用,我试了。
要么把那个按钮置灰,要么就是给它赋其他单击无效果的事件。或者是xx.onclick="";
removeEventListener()等同于点击不响应,楼上的方法基本可以实现了,不过我个人觉得设置标识位来控制xx.onclick中的代码执行
比如:
var clickFlag=false;
xx.onclick=function(){
if(clickFlag){
//响应按钮
}
}
这样做的好处是不会改变按钮的状态,所以看上去就跟调用了removeEventListener()一样。
函数里面 return false
可一个给他一个标志位 如 var flag=flase;
当 xx.onclick()的时候 将flag =false 就行了;
或者 jq 有个方法就是
xx.bind("click",function(){
//业务逻辑
})
取消的时候 直接 xx.unbind("click",function(){
//业务逻辑
});
xxx.onclick=null
addEventListener移除用removeEventListener,并且需要有函数的句柄,匿名函数无法解绑,如document.addEventListener('click',function(){},false)这种无法解绑
下面这种才能解绑docClick
function docClick(){}
document.addEventListener('click',docClick,false)
==>
document.removeEventListener('click',c,false)