选择一个元素&不选择父母

时间:2015-09-13 09:52:51

标签: javascript jquery css

我在监听器jquery中使用,我想要一些东西$(" .parentClass:not(.childClass)")。on(" click",function(){}) ,但这段代码不起作用,当我点击子div侦听器运行时,我只想运行父节点;

2 个答案:

答案 0 :(得分:0)

您可以使用 event.stopPropagation() 来阻止父事件处理程序操作

// Handler for parent
$(".parentClass").on("click", function(e) {
  alert('hi')
});

// Handler for child
$('.childClass').click(function(e) {
  e.stopPropagation();
  // preventing any parent handlers action
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="parentClass">
  parent1
  <div class="childClass">
    child
  </div>
</div>

  

event.stopPropagation() :阻止事件冒泡DOM树,防止任何父处理程序收到事件通知。

取自 https://api.jquery.com/event.stoppropagation/

答案 1 :(得分:0)

您需要像这样检查事件目标:

$(".parentClass").on("click",function(e){
   if($(e.target).hasClass('childClass')){
       return;
   }

   //do staff on exectly parent click
})