找回密码
 立即注册
bind() unbind() 和.on() .off()是各自一对,不能混用??

免责声明:本文内容部分来源于网络,出于网络分享目的,如对您的权益版权有异议我们将予以删除,谢谢合作!
分享至 : QQ空间
收藏

1 个回复

正序浏览
这个认识是错误的!

查看jq源码可知:
jQuery.fn.bind 扩展方法是直接调用.on()方法去实现的:(如下所示:
function (types, data, fn) {
    return this.on(types, null, data, fn);
}
.on()绑定的事件,可用.off()方法去解绑,自然用bind()方法绑定的事件,也可以用jq1.7 就开始提倡使用的新解绑事件方法.off()去解绑!!

但我们要有这样一个意识:
事件绑定到了哪个元素上,就去哪个元素上解绑!!

比如说:

  • $(".al").bind('click',function(event) {
  •                             alert(1111);
  •                         });
我们要给.al解绑click事件,这样写是错误的:
    $(document).off("click",".al");
因为我们之前就根本没给document绑定过事件,何来解绑??正确写法是:
    $(".al").off("click");
当然了,下面这样写也是对的:

  • //document绑定事件
  • $(document).on('click',".al",function(event) {
  •                             alert(1111);
  •                         });
  • //document上解绑事件$(document).off("click",".al");
前提就是遵循上面讲的”事件绑定到了哪个元素上,就去哪个元素上解绑!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册