need click twice after hide a shown bootstrap popover
I recently came across this bug and this is how I fixed it:
$('.myPopoverClass')
.popover({
trigger: 'manual', /* <- important, instantiates popover */
container: 'body', /* optional */
animation: false
})
.click(function(e) {
$('.popover').not(this).hide(); /* optional, hide other popovers */
$(this).popover('show'); /* show popover now it's setup */
e.preventDefault();
});
Still not fixed in 3.3.6 but I found a proposed solution here:
https://github.com/twbs/bootstrap/issues/16732
https://github.com/twbs/bootstrap/pull/17702/files#diff-f3e99e0bb007ace7a370f0492b9cb5abR340
I've applied it in the hidden event:
$('body').on('hidden.bs.popover', function (e) {
$(e.target).data("bs.popover").inState.click = false;
});
This works for me. To be exactly the same as the proposed fix it would be:
$('body').on('hidden.bs.popover', function (e) {
$(e.target).data("bs.popover").inState = { click: false, hover: false, focus: false }
});
Note: I use delegated popovers which is why i'm using the $('body') reference.
For Bootstrap 4 use _activeTrigger
instead of inState
:
$(e.target).data("bs.popover")._activeTrigger.click = false