我正在尝试使用:not
,但它无效。
示例代码:
HTML:
<div class="main_container">
<div class="container">
</div>
</div>
jQuery的:
$(document).ready(function(){
$('body:not(.container)').click(function(){
alert('here');
});
});
在上面的代码中,如果我点击alert
.main_container
,如果我点击div
.container
而不是div来>警告不应该。
怎么做?
答案 0 :(得分:3)
最简单的方法是检查用户实际点击的元素:
$(document).ready(function(){
$('.main_container').click(function(e){
if(!$(e.target).is('.container')) {
alert('ok');
}
});
})
您还可以将事件监听器附加到.container
,以阻止事件传播:
$('.container').on('click', function(e) {
e.stopPropagation();
});
如果你想在.container
上点击另一个动作,那么这真的值得这样做。
答案 1 :(得分:0)
如果不使用:not jquery选择器,您可以在单击任何内容时检查文档。然后使用jquery的事件对象检查单击的内容并执行首选操作。
有关详细信息,请参阅:http://api.jquery.com/category/events/event-object/
$(function () {
$(document).on('click', function(e) {
var target = $( e.target );
if ( target.is( ".container" ) ) {
alert('here');
}
})
});