随身笔记
随身笔记

解决:jquery用off或者unbind解除绑定事件之后,在重新用on或者bind绑定同样事件无效

jquery 命名空间 重新 再次 绑定 事件

在jquery中使用on或者直接使用click类似这样的事件实现业务逻辑在正常不过,在使用off或者unbind解除指定的事件就无法在工作了。

这时候如果我们再次绑定刚刚解除的事件发现,无论在怎么绑定已经无效了,例如:

function run(){
  alert(1);
}

$('#bt0').on('click',run);
为#bt0绑定一个click事件


$('#bt3').click(function(){
  $('#bt0').off('click');为#bt0解除一个click事件
});

以上代码如果一旦点击了解除#bt0解除一个click事件之后,不管在点击j几次或者重新为#bt0创建几次click事件都没有效果了。

如果我们再次希望为解除了绑定的#bt0再次绑定上click事件,我们可以这么做:

function run(){
  alert(1);
}
 var clicknum=0;
 $('#bt0').on('click.'+clicknum,run); //当前绑定的名称是click.0


 $('#bt3').click(function(){
    $('#bt0').off('click.'+clicknum);  //解除绑定的是click.0
    clicknum=clicknum==0?1:0; //如果之前是0那么就改为1,则反之
    $('#bt0').on('click.'+clicknum,run); //又重新绑定一个click.1的事件
 });

 

···················································································································

还有更简单的方法,利用<button>的disabled属性

//以下按钮不会弹窗,只要删除disabled就可以执行click
<button type="button" disabled="disabled" onclick="alert('1')">Click Me!</button>

 

没有标签
首页      前端资源      解决:jquery用off或者unbind解除绑定事件之后,在重新用on或者bind绑定同样事件无效

随身笔记

解决:jquery用off或者unbind解除绑定事件之后,在重新用on或者bind绑定同样事件无效
jquery 命名空间 重新 再次 绑定 事件 在jquery中使用on或者直接使用click类似这样的事件实现业务逻辑在正常不过,在使用off或者unbind解除指定的事件就无法在工作了。 这时候如果…
扫描二维码继续阅读
2016-12-13