javascript - 禁用 href 的点击传播

标签 javascript jquery html css

此代码片段解释了我的情况:

$("#b").click(function(e) {
  e.stopPropagation();
});

$("#b").click(function() {
  alert("trigger div");
});
a {
  display: block;
  position: relative;
  width: 100px;
  height: 100px;
  background-color: gray;
}

div {
  position: absolute;
  width: 50px;
  height: 50px;
  top: 0;
  left: 0;
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href="stackoverflow.com" id="a">
  <div id="b">Test</div>
</a>

问题是我只想触发 div 的点击功能,而不是 a 标签的 href。在类似的问题中,我找到了 event.stopPropagation(),但在这种情况下不起作用。

最佳答案

您需要使用 event.preventDefault() 来阻止默认的点击事件操作方法。

$("#b").click(function(e) {
  e.preventDefault();
  alert("trigger div");
});
a {
  display: block;
  position: relative;
  width: 100px;
  height: 100px;
  background-color: gray;
}

div {
  position: absolute;
  width: 50px;
  height: 50px;
  top: 0;
  left: 0;
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href="stackoverflow.com" id="a">
  <div id="b">Test</div>
</a>

关于javascript - 禁用 href 的点击传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44985147/

相关文章:

javascript - 为什么这一直说它没有定义

javascript - 在 mousemove 事件监听器函数主体中设置左侧位置不起作用

javascript - jQuery 同位素插件附加过滤器

javascript - 为什么我的音节被取回,但我的单词却没有被取回?

javascript - 对不同的页面和 div 使用一个 ajax 调用?

javascript - 将 @media 查询与 javascript 结合使用以动态更改 css

javascript - 如何将对象数组中的 id 转换为 JavaScript 列表

javascript - 如何让浏览器不解析从 javascript 添加的新 HTML 代码

javascript - 使用 jQuery,如何在元素上或元素内查找数据属性? (树遍历)

javascript - 如何使用 jQuery .find() 从嵌入对象中检索值