我正在阅读this post
并且有一个我认为没有回答的问题。为什么这样做:
$('#threeButtons').live('click', '.markAsSpam', function() {
// do some stuff
});
但这不是:
$('#threeButtons').on('click', '.markAsSpam', function() {
// do some stuff
});
我看到参数不同,但我遵循如何使用.on的示例。至少应用于我的例子。
我的DOM看起来像
<div id="threeButtons">
<a href="#" class="markAsSpam">Spam</a>
...
</div>
我需要使用.live或.on,因为我正在处理附加在DOM中的HTML。此外,我的.live示例仅在第一次工作。在不刷新页面的情况下,我需要做什么才能在连续尝试中使用它。我正在使用jQuery 1.7并希望使用.on,因为.live已被弃用。
答案 0 :(得分:1)
来自文档:
.live( events, data, handler(eventObject) )
因此,以下代码将只为#threeButtons
注册一个实时点击事件,该事件将收到另一个参数.markAsSpam
:
$('#threeButtons').live('click', '.markAsSpam', function() {
// do some stuff
});
然而,当使用.on()
时,您创建了click
处理程序绑定在#threeButtons
上的委托,但只有在单击的元素与.markAsSpam
选择器匹配时才会触发该事件