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
})
}
与 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
})
}