【问题标题】:Why "Live" don't bind to the actual element为什么“Live”不绑定到实际元素
【发布时间】:2010-02-20 03:37:19
【问题描述】:

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

我有一个包含几个单元格的表格,在每个单元格“td”中,有一个列表和一个链接“li a”。这些链接有一个与之关联的“.class”。

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

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

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

为什么?如何让链接监听函数?

【问题讨论】:

  • 我认为我没有完全理解这个问题。举一个 HTML 的例子。

标签: jquery events live


【解决方案1】:

[更新]

现在 jQuery 有了.on 方法,它更好、更清晰,我建议您只使用.on.off 进行所有事件处理。

[/更新]

下次一定要写的更清楚;)

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

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

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

每次创建新元素后

【讨论】:

    【解决方案2】:

    live 方法特别对动态创建的元素很有用。在您的情况下,似乎链接不是即时创建的,您可以简单地使用:

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

    【讨论】:

      猜你喜欢
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2018-03-13
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多