我对Jquery事件处理程序“ .on()”有问题。
我主页上的帖子中有一个“收藏夹”按钮。
如果您不喜欢该帖子:
如果您喜欢该帖子:
为什么当我多次单击该按钮(> 1)时,我的脚本执行相同的方法(Event),而我的li上没有class .active吗?
就像.on()不能管理动态的类更改...
我的HTML:
<ul class="post-list">
<li>
<a href="#" class="favorite">Favorite</a>
</li>
<li class="active">
<a href="#" class="favorite">Favorite</a>
</li>
</ul>
我的Jquery:
$(function(){
$('.post-list li.active .favorite').on('click', function(e){
e.preventDefault;
// Event 2
});
$('.post-list li:not(.active) .favorite').bind('click', function(e){
e.preventDefault;
// Event 1
});
});
jQuery将事件绑定到选择器的结果(一次)。您希望每次事件触发时都重新计算选择器,但那时处理程序已经绑定到最初与选择器匹配的任何元素。
尝试:
$(function(){
$('.post-list li .favorite').on('click', function(e){
e.preventDefault();
if (e.target.hasClass('active') {
//Event 2
}
else {
//Event 1
}
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句