gpt4 book ai didi

javascript - 如果 Bootstrap .popover() 位于 ('hidden.bs.popover' 上,则“销毁”正在触发另一个 'hidden.bs.popover' 事件

转载 作者:行者123 更新时间:2023-12-02 15:57:51 31 4
gpt4 key购买 nike

如果 .popover() 之后变成 .on('hidden.bs.popover'),我想'销毁'.on('shown.bs.popover' 所以它不会再 'show' 。一切似乎都正确,但看看控制台,事件 'hidden .bs.popover' 触发了两次,因为销毁 popover 会触发另一个 'hidden.bs.popover' 导致销毁已销毁的 popover,看起来会影响一点性能。

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

$('[data-toggle="popover"]').on('hidden.bs.popover', function () {
$(this).popover('destroy');
console.debug("'hidden.bs.popover' triggering twice!");
})
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>


<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

我试图弄清楚它,但为了避免混淆,我选择不包含它。销毁已关闭的弹出窗口而不触发相同事件的正确方法是什么?

最佳答案

您可以使用 one 仅绑定(bind)一次事件,但我相信它仅适用于第一个弹出窗口,然后它将取消该事件与所有其他弹出窗口的绑定(bind),但值得给它一个机会:

$('[data-toggle="popover"]').one('hidden.bs.popover', function () {
$(this).popover('destroy');
console.debug("'hidden.bs.popover' triggering twice!");
});

关于javascript - 如果 Bootstrap .popover() 位于 ('hidden.bs.popover' 上,则“销毁”正在触发另一个 'hidden.bs.popover' 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31461624/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com