美文网首页jQuery
Jquery中的bind,live,delegate,on的区别

Jquery中的bind,live,delegate,on的区别

作者: sky丶星如雨 | 来源:发表于2017-08-02 10:02 被阅读0次

    bind:
    1.兼容性较好;
    2.绑定事件到所有选中的元素上;
    3.不能绑定事件到动态添加的元素上;
    4.效率较低,尤其是嵌套关系较深的元素

    $("li").bind("click", function (event) {  
        alert("hello");  
    });  
    

    live:
    1.把所有的事件都绑定到jQuery对象$(document)上;
    2.事件只绑定一次,不需要绑定到筛选出来的元素上;
    3.可以绑定事件到动态添加的元素上;
    4.不能使用stopPropagation来阻止事件的冒泡

    $("li").live("click", function (event) {  
        alert("hello");  
    });  
    

    delegate:
    1.将事件绑定到要添加事件元素的父元素身上,比live更加灵活;
    2.绑定的父元素可以采用就近原则,比lve的效率高
    3.也可以用在动态添加的元素上

    $("#ul").delegate("li", "click", function (event) {  
        alert("hello");  
    });  
    

    On:
    是jQuery1.7中新增的,前面的三种方法都是依赖on方法来实现的。,主要特点:
    1.事件的添加和卸载都要是通过on来实现的,提供一种统一的事件处理方法。
    2.增加了使用的难度,对于不熟悉on的使用的,很有可能误用,导致性能下降。

    经验:on方法的正确使用
    1.使用on方法,如果第二个参数使用null,则作用与bind( )相同;
    2.如果第二个参数适用了选择器,就要看调用对象
    i.如果调用对象是$(document),则作用与live( )相同
    ii.否则与delegate()相同

    相关文章

      网友评论

        本文标题:Jquery中的bind,live,delegate,on的区别

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