评论

收藏

[jQuery] jQuery:bind方法的使用详解

开发技术 开发技术 发布于:2021-07-30 17:15 | 阅读数:269 | 评论:0

jQuery:bind方法的使用详解

  • 传入两个参数:第一个参数是事件名称,第二个参数是事件处理函数。例如:$(‘p’).click(f)等价于:
  • $('p').bind('click',f);
  • 传入三个参数:第一个参数仍旧是事件名称,第二个参数可以是任意值,jQuery会在执行处理函数之前,将该值设置为Event的data属性。通过这种方式传递额外数据给处理程序,不需要使用闭包。注意:当对一个事件绑定了多个处理函数的时候,在处理函数中,event的data属性只拥有绑定这个处理函数时传入的值。如下解释会更清楚一些:
  • 例1:
    $('p').bind('click',2,function(event){
      console.log(event.data);
    });
    例2:
    $('p').bind('click',{'name':'sunny'},function(event){
      console.log(event.data);
    });
    例1会输出2,例2会输出{name:’sunny’},两者的data属性值不会受影响。
  • bind方法可以通过空格的给多个事件注册一个处理函数。例如:
  • $('a').bind('mouseenter mouseleave',f);
    相当于
    $('a').hover(f);
  • bind方法可以通过传入对象的方式,给多个事件绑定处理函数。例如:
  • $('a').bind({click:f,mouseenter:g);
  • bind方法可以为注册的事件处理函数指定命名空间,这在解绑某个事件的处理函数的时候不用解绑所有的处理函数,而可以单独解绑某个命名空间下的处理函数。注意:这个命名空间并不是js中模块分类的命名空间的意思,你可以指定任意字符来充当命名空间,格式是:事件名称+.+命名空间名称。例如:
  • click.myspace
    示例代码如下:
    $('a').bind('click.myspace',function(){
        //处理程序
      })
      如果没有命名空间,在解绑的时候,只能执行以下代码全部解绑:
      $('a').unbind('click');
      但是如果使用了命名空间,可以只解绑指定命名空间的处理函数:
      $('a').unbind('click.myspace');
    当然,也可以一次性解绑一个命名空间的所有处理函数。例如:
    $('a').unbind('myspace');
      这将解绑myspace在a上的所有处理函数




关注下面的标签,发现更多相似文章