美文网首页
jQuery绑定事件的四种方式

jQuery绑定事件的四种方式

作者: 小小的白菜 | 来源:发表于2018-09-29 21:07 被阅读0次

jQuery中提供了四种事件监听方式,分别是bindlivedelegateon,对应的解除监听的函数分别是unbinddieundelegateoff

bind

.bind,监听器绑定到目标元素上,会将所有匹配的元素都绑定一次事件。因此,当元素很多时,后来动态添加的元素不会被绑定。

$(selector).bind(event,data,function)
  • event:事件,必选,一个或多个事件;
  • data:参数,可选;
  • fn:绑定事件发生时执行的函数,必选。
$("#foo").bind('click',function(){
    console.log("clicked");
})

它不会绑定到在它执行完后动态添加的那些元素上。当元素很多时,会出现效率问题。当页面加载完的时候,你才可以进行bind(),所以可能产生效率问题。

live

.live,监听器绑定到document上,利用事件委托,可以像调用bind一样调用live方法,但两者的底层实现不一样。.live绑定的事件也会匹配到那些动态添加的元素,而且,被live绑定的事件只会被附加到document元素上一次,因此提高了性能。

$(selector).live(event,data,function)

delegate

.delegate.live类似,不会监听器绑定到你指定的附加元素上,而不是document 上,也利用了事件委托,因此也提高了性能。但是该方法不能直接由bind过渡 。

$(selector).delegate(childSelector,event,data,function)

on

$(selector).on(event,childSelector,data,function)

1.7版本新添加的,也是推荐使用的事件绑定方法。其实bindlivedelegate都是通过该方法实现的:

<script>
  bind: function( types, data, fn ) {
    return this.on( types, null, data, fn );
  },
  unbind: function( types, fn ) {
    return this.off( types, null, fn );
  },

  live: function( types, data, fn ) {
    jQuery( this.context ).on( types, this.selector, data, fn );
    return this;
  },
  die: function( types, fn ) {
    jQuery( this.context ).off( types, this.selector || "**", fn );
    return this;
  },

  delegate: function( selector, types, data, fn ) {
    return this.on( types, selector, data, fn );
  },
  undelegate: function( selector, types, fn ) {
    return arguments.length == 1 ? this.off( selector, "**" ) : this.off( types, selector, fn );
</script>
// Bind
$( "#members li a" ).on( "click", function( e ) {} ); 
$( "#members li a" ).bind( "click", function( e ) {} );

// Live
$( document ).on( "click", "#members li a", function( e ) {} ); 
$( "#members li a" ).live( "click", function( e ) {} );

// Delegate
$( "#members" ).on( "click", "li a", function( e ) {} ); 
$( "#members" ).delegate( "li a", "click", function( e ) {} );

参考文章

jQuery绑定事件的四种方式:bind、live、delegate、on
JQuery中事件绑定的四种方法及其优缺点

相关文章

  • jQuery事件

    jquery 绑定事件 在1.7之前的版本中jQuery处理事件提供了四种事件监听方式,分别是bind、live、...

  • 03-jQuery事件相关

    事件绑定与解绑 jQuery中有两种绑定事件方式eventName(fn);编码效率略高/部分事件jQuery没有...

  • 从零玩转jQuery-事件处理

    事件绑定 jQuery中事件绑定有两种方式eventName(function(){})绑定对应事件名的监听, ...

  • jQuery-事件操作

    事件绑定 jQuery中事件绑定有两种方式eventName(fn) 绑定对应事件名的监听on(eventName...

  • jQuery事件绑定

    jQuery事件绑定有以下几种方式:方式一: 方式二: 方式三: 该种方式可为新增的标签绑定改点击事件,其他方式不...

  • jQuery绑定事件的四种方式

    jQuery中提供了四种事件监听方式,分别是bind、live、delegate、on,对应的解除监听的函数分别是...

  • jQuery绑定事件的四种方式

    此篇文章是在51edu.com上copy过来的,本来想注明作者的,但是没找到作者…… Query提供了多种绑定事件...

  • jQuery元素绑定方式

    在jQuery中,有四种绑定事件方法。分别是:on,live,bind,delegate他们相对应的事件移出方法为...

  • Jquery day_3

    1.1 Jquery 事件注册 1.2 jquery 事件处理 on(): 用于事件绑定,目前最好用的事件绑定方...

  • jquery对节点的操作

    Jquery对事件的绑定 $().bind(“事件类型”, 事件处理); 给jquery绑定一个事件$().bi...

网友评论

      本文标题:jQuery绑定事件的四种方式

      本文链接:https://www.haomeiwen.com/subject/hknboftx.html