javascript - 排除 Javascript/DOM 中的元素

标签 javascript jquery html

鉴于 html/css/javascript/jquery 如下,当我点击“#bbb”时事件仍然触发。

有没有办法避免这种情况的发生?

<div id="aaa" style="position:absolute; width:100%; height:100%; background-color:#f00;">
   <div id="bbb" style="height:25%; width:25%; background-color:#0f0; margin:0 auto;">
   </div>
</div>

<script type="text/javascript">
   $('#aaa').click(function(){alert('aaa clicked');});
</script>

最佳答案

给你:

$( '#aaa' ).click(function (e) { 
    if ( e.target !== this ) { return; }
    alert( 'aaa clicked' );
});

e.target 指向触发点击事件的 DOM 元素。 this 指向 #aaa 元素(因为它是他的点击处理程序)。因此,这条线

if ( e.target !== this ) { return; }

如果未直接点击 #aaa 元素,将提前终止点击处理程序。

现场演示: http://jsfiddle.net/qbDZy/

关于javascript - 排除 Javascript/DOM 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7308180/

相关文章:

javascript - 如何将动态创建的对象绑定(bind)到文档就绪事件?

javascript - 如何在 Laravel 8 中使用 JavaScript 获取?

javascript - 按确定后如何停止显示javascript警报

javascript - 设置动态 div 的网格

jquery - 文本显示在 IE 7 中 Jquery 工具叠加层的叠加层下

javascript - 在 url 悬停时在弹出式 div 中显示网站?

javascript - 如何在Leaflet项目中使用GoogleStreetView?

javascript - 简化 "toggles"数组项的代码

javascript - 使用 jquery 从输入中获取文件名列表

HTML & CSS : ">" Greater than selector styles not applied