javascript - jQuery 单击事件在尝试忽略某些子项时会出现问题

标签 javascript jquery

我的点击事件有问题:

$( document ).on( "click", "#dropdown", function () {
    showHide();
} ).find( "a" ).click( function ( e ) {
    e.stopPropagation();
} );


<div id="dropdown">
    <a href="https://google.de"></a> <- This should not trigger the click
</div>

将其添加到我的 JS 文件后,我无法再单击任何 <a>我的页面上的元素。发生这种情况是因为我的 e.stopPropagation() .

我原本想做的是阻止调用我的 showHide()当我单击任何子链接标记时,函数会起作用,但使用单击函数内的选择器将其绑定(bind)到文档上似乎不起作用。

有人有更好的主意吗?

最佳答案

您可以检查点击的目标是否为 <a>元素,如果不是,则继续 .showHide() .

$( document ).on( "click", "#dropdown", function (event) {
    if(!(event.target.tagName.toLowerCase() === 'a')){
         showHide();
    }
} );

关于javascript - jQuery 单击事件在尝试忽略某些子项时会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60373533/

相关文章:

javascript - 当用户点击按钮 5 次时如何执行警报?

javascript - 使用 axios react useEffect

jquery - 如何 append xmlns :fb ="http://www.facebook.com/2008/fbml" to my CMS's html tag

jquery - 如何从表格单元格(td)中获取相应的表格标题(th)?

jquery - 通过动画从位置 A 缓慢移动到位置 B

javascript - jQuery ajax 停止工作

javascript - Knockoutjs View 管理

javascript - 如何停止显示 window.status?

javascript - 从 MYSQL 表中获取 user_id 并使用 Jquery 设置 HTML 属性(img src、href 链接、h3 标签)

jquery - 以编程方式确定单行显示的字体大小