Bootstrap 弹出框在第二次点击时不起作用

Bootstrap popover not working on second click

this 问题类似,我的弹出窗口在第二次、第四次、第六次……点击时没有显示,而我正试图将其淡出。我的代码:

$('[data-toggle="popover"]').popover({
    placement: 'bottom',
    delay: {
        show: 50
    }
});

$('[data-toggle="popover"]').click(function () {

    setTimeout(function () {
        $('.popover').fadeOut('slow');
    }, 1000);
});

link 中提供的答案声称这是一个 Bootstrap 3.3.5 错误。虽然,我正在使用 bootstrap 3.3.7,但建议的解决方案并不能解决问题:

if ($.fn.popover.Constructor.VERSION == "3.3.7") {
     $('[data-toggle="popover"]').on("hidden.bs.popover", function() {
          $(this).data("bs.popover").inState.click = false
     })
}    

要查看正在运行的错误:JSFiddle

似乎 3.3.7 中的错误尚未修复,但建议的解决方案确实有效。您仍然需要使用 .popover('hide') 隐藏弹出框,而不仅仅是淡出。以下将达到目的:

$('.popover').fadeOut('slow').popover('hide');

结合使用:

if ($.fn.popover.Constructor.VERSION == "3.3.7") {
    $('[data-toggle="popover"]').on("hidden.bs.popover", function() {
        $(this).data("bs.popover").inState.click = false
    })
}