gpt4 book ai didi

jQuery - not() 不适用于元素上新添加的类

转载 作者:行者123 更新时间:2023-12-01 06:15:34 25 4
gpt4 key购买 nike

如果我点击数字 div,我应该收到警报。如果我单击答题器,则会将 less 类添加到数字 div 中,并且此后对数字 div 的任何单击都不应显示警报,因为它现在具有 less 类。相反,我仍然收到警报,就好像 less 类不存在一样。我究竟做错了什么?

<div id="clicker">Clicker</div>
<div class="numbers">123456789</div>

$('.numbers').not('.less').on('click',function(){
alert('should not alert if has class less after clicker');
});

$('#clicker').on('click',function(){
$('.numbers').addClass('less');
});

Here is a fiddle

感谢大家的帮助,我最终得到了这个:

$('body').on('click', '.numbers:not(".less")', function(){
alert('should not alert if has class less after clicker');
});

最佳答案

尝试委派事件

$('body').on('click','.numbers' ,function(e){
if( $(e.target).hasClass('less'){
// Do nothing
}
else{
alert('should not alert if has class less after clicker');
}
});

<强> Check Fiddle

事件被添加到元素而不是,因此当您添加一个条件以根据类条件不触发事件时,它不会工作..

对于这种情况,您需要委托(delegate)事件。

关于jQuery - not() 不适用于元素上新添加的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com