当我点击一个div时,弹出窗口打开,当我点击弹出窗口外的任何地方时它会关闭。因为这个功能,即使我点击'返回顶部按钮'弹出关闭,我不想要。我希望弹出窗口在外部点击时关闭,但点击几个元素我希望弹出窗口保持打开状态。
我的JS供参考:
$(document).click(function (e) {
if (!$(e.target).is('#myPanel, #myPanel*')) {
$("#myPanel").hide();
$(".span10").width(600);
}
});
答案 0 :(得分:1)
你是正确的方式。但是,您需要在逗号分隔选择器中包含不应关闭弹出窗口的所有元素。此外,对于那些具有子元素的人,您需要包含ID后跟一个星号,但用空格分隔。空间是代码中缺少的空间。它应该是#myPanel *
而不是#myPanel
。
$(document).click(function (e) {
//Do not close popup for these:
// - Element with ID myPanel #myPanel
// - Any descendants of element with ID myPanel #myPanel *
// - Element with ID backtotop #backtotop
if (!$(e.target).is("#myPanel, #myPanel *, #backtotop")) {
$("#myPanel").hide();
$(".span10").width(600);
}
});