当我按页面上的 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 });
关于jquery - 将 jQuery 单击事件分配给正文中除少数 div 及其子元素之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989640/