我有一些内容是动态加载在一个网页,其中包含弹出式。由于这个原因,我必须将它们绑定到身体上,这样它们才能正确地装载和显示。
我想找到一种方法,以隐藏当用户点击外部的弹出或在另一个弹出触发器。
我发现,如果我“隐藏”弹出器,弹出器确实会隐藏,但是元素仍然保留在DOM中。这意味着弹出式窗口中的活动链接仍然是“可点击的”。
如果我破坏了弹出器,它就会隐藏,但是如果点击,它将无法重新激活。隐藏罂粟的唯一可靠方法是使用“切换”。这就增加了确定隐藏哪些弹出物的复杂性。
请使用所有这些代码查看这个JSFiddle。
HTML
<a href="#" data-toggle="popover" data-original-title="" data-content="<a href='http://www.yahoo.com'>http://www.yahoo.com</a>" class="some-popover-link">Yahoo</a>
<br><br> <br> <br> <br> <a href="#" data-toggle="popover" data-original-title="" data-content="<a href='http://www.google.com'>http://www.google.com</a>" class="some-popover-link">Google</a>
<br><br> <br> <br> <br> <a href="#" data-toggle="popover" data-original-title="" data-content="<a href='http://www.microsoft.com'>http://www.microsoft.com</a>" class="some-popover-link">Microsoft</a>JavaScript
$('.some-popover-link').popover({
container: 'body',
html: true,
placement: 'bottom'
});
$(document).click(function (e) {
$('.some-popover-link').each(function () {
if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
$(this).popover('hide'); // this hides popover, but content remains
return;
}
});
});发布于 2013-10-31 00:17:26
这依赖于内部实现,所以要小心,但应该有效。JSFiddle链路
if ($(this).data('bs.popover').tip().hasClass('in')) {
$(this).popover('toggle');
}发布于 2013-10-30 23:05:43
使用以下代码:
$(document).mouseup(function (e) {
if ($('.popover').has(e.target).length === 0) {
$('.popover').toggleClass('in').remove();
return;
}
});https://stackoverflow.com/questions/19695180
复制相似问题