我面临的问题很少,尤其是事件冒泡和“实时”方法。
我有一个包含很少单元格的表,在每个单元格中都有“td”,有一个列表和一个链接“li a”。链接有一个与之关联的“.class”。
所以我只想让链接工作,我使用live方法(因为它们是动态创建的)
$('.aclass').live('click',function() {
// Do something
});
当我使用Google Chrome开发人员工具观看事件收听时,我看到的不是监听匿名功能的链接,而是整个单元格“td”。
为什么呢?如何让链接听取功能?
答案 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
});