4

当我在页面上按下 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>
4

1 回答 1

7

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

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

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

如果要将单击绑定到与弹出窗口匹配的所有元素,可以执行以下操作:

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

有关更多信息,请参阅:not().on()的 jquery 文档...

于 2012-08-16T15:04:41.047 回答