jQuery不是选择器不工作,有什么不对?

时间:2013-01-29 06:55:01

标签: jquery jquery-selectors except

当用户点击文档中的任何地方(除了具有class ='reset_btn'的div)时,我想提醒一些事情。我已经尝试过not()和:not(选择器),但它们不起作用。

这是我的代码。

$('document').not('.reset_btn').click(function(){
   alert('Something');
});

我在JSFiddle创建了一个演示版。在演示中,他们没有任何警报。当我点击div之外的任何区域时它应该发出警报,当我点击div区域时不应该发出警报。

有什么建议吗?非常感谢你。

2 个答案:

答案 0 :(得分:3)

$('document')不是有效的选择器,因为没有document标记名称。您可以改为使用$(document),它将使用document 元素,但这里不需要。只需直接使用:not()

$(':not(.reset_btn)').click(function(){
   alert('Something');
});

要进一步优化,请使用event delegation

$(document).on('click', ':not(.reset_btn)', function(){
   alert('Something');
});

答案 1 :(得分:2)

您可以使用on将事件委托给文档。

$(document).on("click", ':not(.reset_btn)').click(function(){
   alert('Something');
});