我的网站在地图上有多个弹出窗口(只是一个带有背景图像的 div),带有可点击的图标:
单击这些图标时,会显示一个弹出框。此弹出窗口有一个轮播,其中包含带有链接的文本:
当我在弹出框外部单击时,所有弹出框都被隐藏。据说这可以正常工作。我从这个 Stack Overflow question得到了代码。
但是当您在弹出框外部单击以再次隐藏它时,就会出现真正的问题。弹出框是隐藏的,但它仍然在 DOM 中。这意味着链接仍然是可点击的!
当我单击加号图标隐藏弹出框时,弹出框被隐藏(已删除?),但是当单击加号外部(即页面上的任何位置)时,弹出框仍然存在(但不可见)正上方</body>
。
请帮忙!这让我很恼火.. :(
编辑:可能值得一提的是弹出框是动态添加的:
$('.plus').each(function(i) {
var $self = $(this);
$self.popover({
html: true,
title: false,
placement: function() {
return 'auto left'; // TODO: calculate placing
},
content: function() {
var html = '<div id="carousel-' + i + '" class="carousel slide">';
var list = '<ol class="carousel-indicators">';
var slides = '<div class="carousel-inner">';
var count = 0;
$('.post[data-category="' + $(this).data('category') + '"]').each(function(j) {
// add indicator for slide
list += '<li data-target="#carousel-' + i + '" data-slide-to="' + count + '"' + (count == 0 ? ' class="active"' : '') + '></li>';
// add html for slide
slides += '<div class="item' + (count == 0 ? ' active' : '') + '">' + $(this).html() + '</div>';
// increase counter
count++;
});
// merge all html
html += list + '</ol>' + slides + '</div></div>';
return html;
}
});