代码之家  ›  专栏  ›  技术社区  ›  Omar Abid

为什么“live”不绑定到实际元素

  •  0
  • Omar Abid  · 技术社区  · 15 年前

    我面临的问题很少,尤其是事件冒泡和“现场”方法。

    我有一张只有几个单元格的表格,在每个单元格“td”中有一个列表和一个链接“li a”。链接有一个与它们相关联的“.class”。

    所以我只想让链接工作,我使用live方法(因为它们是动态创建的)

    $('.aclass').live('click',function() {
    // Do something
    });
    

    当我使用Google Chrome开发工具观看事件监听时,我看到的不是监听匿名函数的链接,而是整个单元的“td”。

    为什么?如何使链接侦听函数?

    2 回复  |  直到 13 年前
        1
  •  1
  •   naugtur    13 年前

    [更新]

    现在jquery有了 .on 方法,更好,更清晰,我建议只使用 关于 .off 对于所有的事件处理都是如此。

    [/更新]

    下次你得写得更清楚些;)

    live函数将事件绑定到您选择的所有元素的父元素,因此在您的情况下,绑定到具有“aclass”类的元素的父元素。然后,当单击一个适合选择器的对象时,它会监听并调用事件函数。这就是行为不同的原因。

    如果要将单击直接绑定到元素,请使用bind而不是live and do

    $('.aclass').unbind('click').bind('click',function(){ something });
    

    每次创建新元素后

        2
  •  0
  •   Sarfraz    15 年前

    这个 live 方法是 尤其地 对于动态创建的元素很有用。在您的例子中,链接似乎不是即时创建的,您可以简单地使用它:

    $('.aclass').click(function() {
    // Do something
    });