假设我有:
<div id="outer" onclick="thingsHappen()">
<div id="inner"></div>
</div>
当我点击outer 或inner div 时,thingsHappen() 被执行。这是显而易见的。
现在我需要为 inner div 定义一个不同的方法。 例如
$("#inner").click(function() {
doThings();
});
当我点击 inner 时,thingsHappen() 和 doThings() 都会执行。 单击内部 div 而不执行 thingsHappen() 如何执行 doThings()?
我尝试解除绑定(bind)#inner 的点击方法,但没有成功。 附言。我无法更改 HTML 的结构。
最佳答案
$("#inner").click(function(e) {
doThings();
e.stopPropagation();
});
示例: http://jsfiddle.net/QNt76/
JavaScript 事件在 DOM 树中向上冒泡,除非您阻止它们传播。这就是导致父事件处理程序收到通知的原因。
关于javascript - 如何使用点击方法在元素内部添加点击方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264192/