在Click eevent上从Body中排除Class

时间:2016-12-20 14:46:37

标签: javascript jquery

我想在点击身体时切换一个类。但是如果特定的DIV有类" mainDIV"我想要反映在同一个身体上 排除该DIV的正文点击事件。这样当用户点击" mainDIV"不得发生身体点击事件。

我在jQuery中使用这个CODE,但它不起作用:

$("body :not(.mainDIV)").bind("click", function() {
  $('.offerClass').show();
});

2 个答案:

答案 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();
});