jquery - 将 jQuery 单击事件分配给正文中除少数 div 及其子元素之外的所有内容

标签 jquery jquery-events

当我按页面上的 div 时,会出现一个弹出窗口。当您再次单击该 div 时,弹出窗口就会消失。当您单击 div 外部时,弹出窗口就会消失 - 到目前为止一切看起来都很好。

问题是,当我单击弹出窗口时,我希望弹出窗口及其子窗口可单击(它们是无序列表内的链接),但我似乎无法使其工作。这是我的代码:

        $(function () {
            $('#messageNotification').click(function (event) {
            $("body").one('click', function () {

                jQuery(".userInfo").fadeOut();
            });
            event.stopPropagation();
        });


          <body>
            <div id="messageNotification"><div class="notif same">0</div></div>
            <div id="messages">
                <ul class="userInfo" style="">
                    <li></li>
                </ul>
            </div>
             
          </body>

最佳答案

如果我理解正确,您可以按选择器进行过滤。例如:

$('body').on('click', 'a', function(){ ... });

这会将 click 事件绑定(bind)到与选择器 a 匹配的所有元素。

如果您想将点击绑定(bind)到所有与弹出窗口不匹配的元素,您可以执行以下操作:

$('body').on('click', ':not(#popup)', function(){ // code to dismiss popup here });

请参阅 :not() 的 jquery 文档和 .on()欲了解更多信息...

关于jquery - 将 jQuery 单击事件分配给正文中除少数 div 及其子元素之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989640/

相关文章:

javascript - jQuery 冒泡 - MouseOut 问题

javascript - 使超链接仅在禁用 JavaScript 时有效?

javascript - 禁用鼠标滚动

jquery - 绑定(bind)到表单提交事件时查找单击的元素?

javascript - 如何知道两个jquery对象是否指向同一个元素

javascript - jQuery 没有选择 Bootstrap 按钮

jquery - 加载多个 javascript 文件 - jquery

jquery - 嵌入标签 <b> Jquery

javascript - 中键点击事件

javascript - 当您删除()一个元素并在其他地方追加()它时,jQuery中的事件是否会丢失?