jquery onclick渗透到父元素

时间:2012-05-11 06:56:38

标签: javascript jquery onclick parent-child

我如何阻止onclick内部元素点击其父元素。

<div id="1" onclick="alert('1')">
<div id="2" onclick="alert('2')"></div>
</div>

如果第二个div(id =“2”)明显位于第一个div之上,并且单击它,则会同时获得警报1&amp; 2。

我怎样才能避免这种情况,所以我只能从我(明显)点击的内容中得到警报, 没有完全禁用外部div可能拥有的任何onclick函数。

示例: http://jsfiddle.net/DPCx8/

3 个答案:

答案 0 :(得分:7)

​var outer = document.getElementById('outer');
outer.onclick = function(event)
    {
        alert('outer');
        event.stopPropagation();
    }​​
    var inner = document.getElementById('inner');
inner.onclick = function(event)
    {
        alert('inner');
        event.stopPropagation();
    }

http://jsfiddle.net/DYykA/1/

答案 1 :(得分:6)

您需要在孩子身上stop the propagation,因此事件不会冒泡到父母身上。

$("#inner").on("click", function(e){
  e.stopPropagation();
});

答案 2 :(得分:3)

使用event.stopPropogation();来阻止事件冒泡