单击弹出触发器元素时,如何关闭/关闭Bootstrap Popover?

jsFiddle: http : //jsfiddle.net/kAYyR/

截图:

截图

这是有效的:

  1. 点击按钮打开popover
  2. 单击外部弹出窗口关闭弹出窗口
  3. 点击.close按钮关闭popover

但是……再次单击原始按钮时,我无法关闭弹出窗口。 相反,弹出窗口再次闪烁。

在这里自己复制一下。

我怎么能做到这一点?

HTML:

  
This rich
html

content 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 } }); 

你想要这样的工作吗?

http://jsfiddle.net/kAYyR/3/

 $('#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'); });