此代码适用于jQuery 1.7.2:
$('.category').live('click', function() {
alert('clicked');
});
但是当我切换到使用addClass时,没有添加任何类:
$('.category').live('click', function() {
$(this).addClass('active');
});
任何人都可以建议为什么以及如何使用live()来做到这一点?感谢。
更新: 我切换到2.2.4版本的jquery并更改了on()函数的live()函数。当我定位动态创建的链接或不动态创建的DOM元素时,警报会起作用。但是,addClass()仅在我定位*未动态创建的元素时才有效,并且检查器显示为这些元素添加了活动类,但未添加到动态创建的链接中。
答案 0 :(得分:0)
引用MDN Docs:
从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来 附加事件处理程序。旧版jQuery的用户应该使用 .delegate()优先于.live()。
由于该方法已弃用,因此在某些情况下其功能可能已被破坏。您应该使用.on
将任何事件绑定到元素。
$('.category').on('click', function() {
$(this).addClass('active');
});
.active{
background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<div class="category">Some Content</div>