我在这里找到了一个解决方案,在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
基于拉明森的回答。
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' 用于链接,打开此窗口。我知道,我可以在那里上课或其他东西。