gpt4 book ai didi

javascript - 如果在外部单击,则隐藏弹出窗口。为什么我的脚本不起作用?

转载 作者:行者123 更新时间:2023-11-28 09:47:41 25 4
gpt4 key购买 nike

我在这里找到了一个解决方案,在stackoverflow上,脚本如下:

jQuery(document).mouseup(function (e){
var container = jQuery(".quick-info");
if (container.has(e.target).length === 0) {
container.hide();
}
});

我的尝试是:

jQuery('body:has(.quick-info:visible):not(.quick-info)').click(function (e) {
jQuery(".quick-info").hide();
});

所以我的脚本意味着:捕获在 body 上进行的点击,但不在 .quick-info 上进行,并且 body 具有可见的 .quick-info 。可能是什么问题?可能是一些错误的选择器?

更新1

基于 Raminson 的回答。

jQuery('body > *:not(.quick-info)').click(function (e) {        var container = jQuery(".quick-info");    if (container.has(e.target).length === 0 && e.target.nodeName != 'A'){    jQuery(".quick-info").hide();    }});

因此,> 仅选择了单个选择器。

e.target.nodeName != 'A' 代表 link ,它打开此窗口。我知道,我可以在那里放置类或其他东西。

最佳答案

或者:

jQuery('body:has(.quick-info:visible)').click(function (e){
if($(e.target).is(".quick-info")) return;
jQuery(".quick-info").hide();
});

//if($(e.target).hasClass("quick-info")) return;

基于 VisioN 评论和 THIS发布 hasClass() 更喜欢在 is()

关于javascript - 如果在外部单击,则隐藏弹出窗口。为什么我的脚本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com