Javascript 防止锚定父元素单击事件

Javascript 防止锚定父元素单击事件,javascript,events,dom-events,anchor,Javascript,Events,Dom Events,Anchor,在锚元素的内部有一个跨度元素。在跨度元素上有一个单击事件。单击范围并触发事件时,它也会触发锚定父元素 我已经用event.stopPropagation()尝试过了但没有效果 下面是一个代码示例 标记: <a href="#"> <span class="child"></span> </a> 事件。preventDefault()就是您要查找的事件。您的标记仍然没有意义。如果你不想点击锚定标签,就把它设为div或者其他什么。或者将点击

在锚元素的内部有一个跨度元素。在跨度元素上有一个单击事件。单击范围并触发事件时,它也会触发锚定父元素

我已经用
event.stopPropagation()尝试过了但没有效果

下面是一个代码示例

标记:

<a href="#">
    <span class="child"></span>
</a>


事件。preventDefault()
就是您要查找的事件。您的标记仍然没有意义。如果你不想点击锚定标签,就把它设为div或者其他什么。或者将点击功能添加到锚定标记本身。

您确定吗?你的代码看起来不错。是什么让你认为
a
的点击事件也会触发?请分享原始代码,因为我使用你提供的代码重新创建了效果,并且效果正常(控制台中打印的消息只有在我点击span时才会打印),而不是主播库,供你评论。我在问题中添加了一个与实际代码截取的代码。标记背后的想法是:我有一个可单击的锚元素,它将指向另一个页面。但是在这个元素中有一个较小的元素(在右上角)和另一个函数。这个较小的子元素应该在单击事件而不是父超链接时作出反应。遗憾的是,event.preventDefault()也不起作用。它不会那样起作用。您可以使子标记工作,也可以使锚定标记工作。更改标记并将子项(可单击)移出锚定标记。通过CSS欺骗,您可以使它看起来像是在锚标记内。
var children = document.getElementsByClassName("child");

for (var i = 0; i < children.length; i++) {
    children[i].addEventListener("click", function(event) {
        event.stopPropagation();
        console.log("test");
    }, false);
}