获取子元素的事件而不触发父母的相同事件

时间:2013-08-17 18:39:54

标签: jquery html

我有父节点和子节点。他们都有'点击'事件列表。由于< a>是子元素,我不能点击它而不点击父< div& gt,所以总是父亲的事件< div>被触发了。如何获取子元素< a>的事件?没有触发父亲< div>? 这是jsFiddle和代码:
HTML

<div id="container">
    <a href="" id="link"></a>
</div>

CSS:

#container {
    width:100px;
    height:100px;
    background:blue;
    position:relative;
    cursor:pointer;
}
#link {
    width:20px;
    height:20px;
    background:green;
    position:absolute;
    top:10px;
    left:10px;
}

JS:

$('#container').on('click', function() {
alert('container');
});
$('#link').on('click', function() {
alert('link');
});

1 个答案:

答案 0 :(得分:3)

如果您不希望将事件传播到容器,请使用stopPropagation

$('#container').on('click', function() {
    alert('container');
});
$('#link').on('click', function(e) {
    alert('link');
    e.stopPropagation();
});

(如果您不想触发链接的默认行为,请将e.stopPropagation();替换为return false;