如何将点击事件绑定到元素has'使用jquery的特定子项

How to bind click event to element hasn't specific child using jquery?

本文关键字:jquery 使用 has 事件 元素 绑定      更新时间:2023-09-26

我在一个页面上有几个元素,就像底部代码一样。

<div>
   <a href="#" id="notme">click</a>
   some content 
</div>

它们可以被点击,jQuery选择点击。但是,其中一个元素有一个a链接,单击该链接不应被拾取为父元素的单击。

$('div:not(#notme)').on('click', function(e) {
    // do something
});

由于某种原因似乎不起作用。。。

使用:has选择器选择具有特定子元素的div元素。在:has中使用:not

$("div:has(a:not(#notme))").on("click", function(e) {
    console.log("clicked");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
   <a href="#" id="notme">click</a>
   some content 
</div>
<div>
   <a href="#" >click2</a>
   some content 2
</div>

您可以尝试:

$('div').on('click', function(e) {
  if($(e.target).attr("id") !== "notme") {
    // do something
  }
});
$('#notme').on('click', function(e) {
  e.stopPropagation();
});