试图使以下内容无济于事:仅在单击的任何内容不包含.remove
的情况下,淡化类.completed
的所有元素
$(document).on('click', ':not(.completed)', function(){
$('.remove').fadeOut('fast');
});
最佳答案
我发现这是一个jQuery问题:
仅使用:not(.class)
无法正常工作。 This jsfiddle 演示它。
如果您的.completed
元素具有相同的标签名称,则可以添加有效的tagname:not("completed")
(为什么?!)。
在我的示例中,它们是按钮,因此选择器变为button:not('.completed')
。
$(document).on('click', 'button:not(.completed)', function(e){
$('.remove').fadeOut('fast');
});
JSFIDDLE
另一个解决方案是验证是否单击了元素
hasClass('completed')
。if ($(e.srcElement).hasClass("completed")) { return; }
JSFIDDLE
如果所有
.completed
元素都是div
,则将选择器替换为div:not('completed')
。同样,最好创建一个问题here。它将解决。
关于jquery - 除非元素包含特定类,否则在文档上触发事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17562810/