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

时间:2010-02-20 03:37:19

标签: jquery events live

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

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

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

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

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

为什么呢?如何让链接听取功能?

2 个答案:

答案 0 :(得分:1)

[更新]

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

[/更新]

下次你必须写得更清楚;)

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

如果要将点击直接绑定到元素,请使用bind而不是live并执行

$('.aclass').unbind('click').bind('click',function(){ something });
每次创建一些新元素后

答案 1 :(得分:0)

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

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