美文网首页
bind delegate on 区别

bind delegate on 区别

作者: McDu | 来源:发表于2018-09-29 15:24 被阅读15次

    .bind将会给所有匹配的元素都绑定一次事件,当元素很多时性能会变差。 而且后来动态新增的元素不会被绑定。
    .delegate是另一种绑定事件的方式。它将事件处理函数绑定在指定的根元素上, 由于事件会冒泡,它用来处理指定的子元素上的事件。
    .delegate 可以:

    自动绑定动态添加的元素。因为事件处理函数绑定在#root上,新加的子元素事件也会冒泡到#root。
    性能好于.bind()。只绑定一个事件处理函数,绑定速度相当快。

    .on()才是jQuery事件的提供者。其他的事件绑定方法都是通过.on()来实现的:

    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 );
    },
    
    

    return false来阻止冒泡和默认行为

    在实践中,我们常常让事件处理函数return false来阻止冒泡和默认行为, 可以认为return false做了三件事情:

    stopPropagation();
    preventDefault();
    立即结束当前函数并返回。


    jQuery事件:bind、delegate、on的区别

    相关文章

      网友评论

          本文标题:bind delegate on 区别

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