我想在点击身体时切换一个类。但是如果特定的DIV有类" mainDIV"我想要反映在同一个身体上 排除该DIV的正文点击事件。这样当用户点击" mainDIV"不得发生身体点击事件。
我在jQuery中使用这个CODE,但它不起作用:
$("body :not(.mainDIV)").bind("click", function() {
$('.offerClass').show();
});
答案 0 :(得分:0)
jQuery 3.0
中不推荐使用bind()
方法,因此最好采用on()
方法。
在body
上绑定点击事件,并使用event.stopPropagation()
方法在.mainDIV
内点击时阻止事件冒泡。
$("body").on("click", function() {
$('.offerClass').show();
}).on('click','.mainDIV',function(e){
e.stopPropagation();
});
答案 1 :(得分:0)
首先请注意,bind()
不久前已被弃用。您现在应该使用on()
代替。
要解决您的问题,您可以让活动冒泡到document
,然后检查活动target
中引用的元素上的类,如下所示:
$(document).on("click", function(e) {
if (!$(e.target).hasClass('mainDIV'))
$('.offerClass').show();
});