如果单击子锚标记,如何去除父元素单击事件?

时间:2016-05-20 19:47:57

标签: javascript jquery html css

我遇到的情况是我在数据库中创建动态内容。我正在其中创建包含内容的nickname。我添加了<div>事件onclick。如果用户点击div的内容,这意味着<div>,它会打开一个弹出窗口。但是如果内容中有锚标记。那时如果用户点击了锚标记,那么事件执行它也会打开链接页面并弹出。

我希望在点击锚标记时阻止div <div>

这有什么可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

如果您使用jQuery,请尝试 stopPropagation()这样的功能:

简单的例子:

$("div a").click(function(e) {
    e.stopPropagation();
    // your code here...
});

包含类和ID的增强示例:

html:

<div id="content">
    ...
    <a href="/your/uri/here" class="noPropagation">my link</a>
    ...
</div>

JS:

$("div#content a.noPropagation").click(function(e) {
    e.stopPropagation();
    // your code here...
});

这里是文档:https://api.jquery.com/event.stoppropagation/

答案 1 :(得分:1)

由于您是动态添加<div>,因此可以将click事件处理程序绑定到动态内容的最近祖先。这是一种方法:

$('.some-container').on('click', 'div.dynamic-content a', function(event) {
    event.stopPropagation();
});

答案 2 :(得分:0)

以下是https://jsfiddle.net/7c51j7av/

的示例
<div class="outer">
    <div class="inner">
    click me
    </div>
 </div>  



$(".outer").click(function(){
        alert("Here");
    });

    $(".inner").click(function(e){
        e.stopPropagation();
        alert("Stopped it");
    });
相关问题