zoukankan      html  css  js  c++  java
  • jQuery 请指出'.bind()','.live()'和'.delegate()'的区别

    http://kb.cnblogs.com/page/94469/ 
    网上好多类似的

    简言之bind可以绑定页面上已有的,live和delegate可以
    绑定到还未存在于页面中的元素之上。delegate又比live好一些

    ------------------------------------------------------------------------------------------------------------------------------------------
    .bind()

      $('a').bind('click', function() { alert("That tickles!") });

      这是最简单的绑定方法了。JQuery扫描文档找出所有的$(‘a’)元素,并把alert函数绑定到每个元素的click事件上。

    .live()

      $('a').live('click', function() { alert("That tickles!") });

      JQuery把alert函数绑定到$(document)元素上,并使用’click’和’a’作为参数。任何时候只要有事件冒泡到 document节点上,它就查看该事件是否是一个click事件,以及该事件的目标元素与’a’这一CSS选择器是否匹配,如果都是的话,则执行函数。

      live方法还可以被绑定到具体的元素(或context)而不是document上,像这样:

      $('a', $('#container')[0]).live(...);


    .delegate()
    类似于live()  但是delegate方法仅需要查找并存储$(document)元素。
    live函数也挺令人费解的。想想看,它被链到$(‘a’)对象集上,但其实际上是在$(document)对象上发生作用。由于这个原因,它能够 试图以一种吓死人的方式来把方法链到自身上。实际上,我想说的是,以$.live(‘a’,…)这一形式作为一种全局性的jQuery方法,live方法 会更具意义一些。

    (貌似下面描述不正确  CSS选择器  测试用a 也是可以的)

      仅支持CSS选择器

      最后一点,live方法有一个非常大的缺点,那就是它仅能针对直接的CSS选择器做操作,这使得它变得非常的不灵活。

    $("p").append("<a class='della' href='#'> Hello</a >");
        $('a').live('hover', function() {
          alert("Live handler called.");
        });

    I am della  ,  I love SH

  • 相关阅读:
    刷题柱 -- 暂封
    模板重搭建計劃
    思路与好题记录与小技巧
    错误记录
    随便记点东西……
    图床
    杂碎的小技巧
    hnsdfz -- 6.21 -- day7
    hsdf -- 6.21 -- day6
    hnsdfz -- 6.20 -- day5
  • 原文地址:https://www.cnblogs.com/della/p/3296674.html
Copyright © 2011-2022 走看看