javascript - Jquery 选择器问题

标签 javascript jquery html selector

我的页面上有以下 html 标记,

<div id="sig_container">
    <div id="layer1" class="layer ui-draggable ui-resizable ui-resizable-autohide">
    <div id="layer2" class="layer ui-draggable ui-resizable ui-resizable-autohide">
    <div id="layer3" class="layer ui-draggable ui-resizable selected ui-resizable-autohide">
</div>

在这个页面上,我试图选择 #sig_container div 而不选择任何子元素。但是我这样做有问题。选择器要么选择所有内容,要么什么都不选择。

提前致谢 丹尼尔

编辑:抱歉,我应该添加我正在尝试在容器上添加点击事件。所以我希望事件仅在我单击容器而不是子项时触发。

最佳答案

您可以通过测试点击事件的 event.target 来完成您想要的。

$('#sig_container').click(function( event ) {
    if( event.target === this ) {
        // the children were not clicked, so run your code
    }
});

这样做的原因是点击事件自然会冒泡,因此如果您单击其中一个子项,该事件会冒泡到 sig_container 并触发其处理程序。

使用此解决方案,您可以确保事件的 target 在触发代码之前实际上是 sig_container

所以基本上:

  • thissig_container

  • event.target 是实际点击的元素

  • 如果thisevent.target相同则运行代码

关于javascript - Jquery 选择器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5122307/

相关文章:

javascript - 通过 JavaScript 动态设置的 Iframe src 在 Internet Explorer 上执行了两次

javascript - 使用 jQuery 选择多个类

jquery - 我想在每个 li 悬停时从左到右为 li 元素设置动画

javascript - 从 jquery datepicker 选择日期后关闭 jquery 对话框

html - 将 CSS 放入文档头部但我没有头部?

html - Golang HTML 模板嵌套范围循环

javascript - 使用javascript更改对象数组中的键值?

javascript - Angular JS : Why is my click event firing twice?

C# Uwp应用程序web浏览器控件无法获取设备位置

javascript - GTM Google Analytics 自定义维度变量仅在某些时候触发