当我动态地向一个元素添加一个类时,伪过滤不会识别该类。 当我使用on()函数时会出现此问题,但是当我使用live()
时一切都很好一开始,所有列表项都是可点击的。 但是按下按钮后,“Ipsum”不应再被点击,并且不应出现另一个“Not active”消息。
$('.item:not(.active)').on('click', function(){
$('<p>Not active</p>').appendTo('body');
});
答案 0 :(得分:3)
$('body').on('click', '.item:not(.active)', function(){
$('<p>Not active</p>').appendTo('body');
});
答案 1 :(得分:1)
使用$(document).on
$(document).on('click','.item:not(.active)', function(){
$('<p>Not active</p>').appendTo('body');
});
答案 2 :(得分:0)
这是正确的行为。您正在向非活动元素添加事件(所有3个.item)。 因此,如果添加类,它将不会取消绑定事件。
我会做这样的事情:
$('input[type=button]').click(function(){
$('.item:nth-child(2)').addClass('active').css('color','#F00');
});
$('.item').on('click', function() {
if($(this).is('.active')) return;
$('<p>Not active</p>').appendTo('body');
});
答案 3 :(得分:-1)
$(document).on('click','.item:not(.active)', function(){
$('<p>Not active</p>').appendTo('body');
});