我在另一个元素中有一个元素,并且两者都有单独的点击功能。如果子元素具有点击功能,我想做的是忽略或停止父元素。例如:
<div class="parent">
<div class="child1">Child Click Function</div>
Parent Click Function
</div>
<script type="text/javascript">
document.observe('dom:loaded',function(){
if ($$('.parent') != undefined) {
$$('.parent').invoke('observe','click', function(e) {
alert('parent');
});
}
if ($$('.child1') != undefined) {
$$('.child1').invoke('observe','click', function(e) {
alert('child');
});
}
});
</script>
发生的事情是,当点击 child1 时,由于 child1 在父级中,因此它和父级都被触发。我想在选择子项时禁用/停止观察,但是当您单击父项中的任何其他内容时,它会正常工作。
谢谢。
最佳答案
您遇到了所谓的“事件冒泡”。除非您明确停止冒泡,否则给定元素上的事件会在 DOM 中冒泡,直到到达根节点。由于看起来您正在使用 Prototype,因此将您 child 的事件处理程序更新为以下内容应该可以解决问题:
$$('.child1').invoke('observe','click', function(e) {
Event.stop(e);
alert('child');
});
关于javascript - 观察具有单独点击观察功能的元素内的元素点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025595/