单击弹出触发器元素时,如何关闭/关闭Bootstrap Popover?
jsFiddle: http : //jsfiddle.net/kAYyR/
截图:
这是有效的:
- 点击按钮打开popover
- 单击外部弹出窗口关闭弹出窗口
- 点击
.close
按钮关闭popover
但是……再次单击原始按钮时,我无法关闭弹出窗口。 相反,弹出窗口再次闪烁。
在这里自己复制一下。
我怎么能做到这一点?
HTML:
This richhtmlcontent goes inside popover
JS:
$('#popoverId').popover({ html: true, title: "Popover Title", content: function () { return $('#popoverContent').html(); } }); var isVisible = false; var clickedAway = false; $('.popoverThis').popover({ html: true, trigger: 'manual' }).click(function (e) { $(this).popover('show'); $('.popover-content').append('×'); clickedAway = false isVisible = true e.preventDefault() }); $(document).click(function (e) { if (isVisible & clickedAway) { $('.popoverThis').popover('hide') isVisible = clickedAway = false } else { clickedAway = true } });
你想要这样的工作吗?
$('#popoverId').popover({ html: true, title: 'Popover Title×', content: $('#popoverContent').html(), }); $('#popoverId').click(function (e) { e.stopPropagation(); }); $(document).click(function (e) { if (($('.popover').has(e.target).length == 0) || $(e.target).is('.close')) { $('#popoverId').popover('hide'); } });
我用这个:
$('[data-toggle="popover"]').popover({html: true, container: 'body'}); $('[data-toggle="popover"]').click(function (e) { e.preventDefault(); $('[data-toggle="popover"]').not(this).popover('hide'); $(this).popover('toggle'); }); $(document).click(function (e) { if ($(e.target).parent().find('[data-toggle="popover"]').length > 0) { $('[data-toggle="popover"]').popover('hide'); } });
它可以通过使用此代码完成
something here$('[data-toggle=popover]').popover({ html: true, content: function () { return $('#content').html(); } }).click(function (e) { $('[data-toggle=popover]').not(this).popover('hide'); });