This question already has answers here:
How do I prevent a parent's onclick event from firing when a child anchor is clicked?

(22个答案)


3年前关闭。




在此示例中,我希望在单击黑色外部div时触发警报,而不是在单击内部div内的任何东西时触发警报。

当前,当我单击内部按钮时,它会触发警报。

$("#outer").click(function() {
  alert("triggered");
});
#outer{
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
}
#inner{
  background-color: #fff;
width: 300px;
height: 300px;
  text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="outer">

  <div id="inner">
    <button>inner button</button>
  </div>
</div>


我希望内部div内没有任何东西可以触发警报。我该怎么做呢?

(由于某些原因,片段中未显示内部按钮,这是codepen链接:https://codepen.io/GuerrillaCoder/pen/Pmvmqx)

最佳答案

您只需要检查element的ID,因为inner是子元素,它将始终将事件传播到父元素(外部)。

$("#outer").click(function(event) {
 if(event.target.id=="outer"){
  alert("triggered");
 }
});

关于javascript - 将click方法应用于外部div,但不能应用于内部div ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44225331/

10-10 08:59