我希望'destroy'
.popover()
.on('hidden.bs.popover'
.on('shown.bs.popover'
'show'
之后'hidden.bs.popover'
再次'hidden.bs.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>
触发了两次,因为破坏一个弹出框会触发另一个Template.userLoggedIn.helpers({
stream: function() {
return ReactiveMethod.call("checkApi", function(err, results) {
console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); //nothing
res = JSON.parse(results.content); // nothing
return res
});
}
导致破坏被破坏的弹出窗口,看起来它会影响一点性能。
{{#with stream }}
{{this}} //Object object
{{/with}}
{{#with stream }}
{{this.livestream}} //Undefined
{{/with}}
我试图解决这个问题,但我选择不包括它以避免混淆。在没有触发相同事件的情况下,摧毁被解雇的弹出窗口的正确方法是什么?
答案 0 :(得分:2)
你可以使用one
只绑定一次事件,但我相信它只适用于第一个popover,然后它将解除所有其他popovers事件的绑定,但值得给它一个机会:< / p>
$('[data-toggle="popover"]').one('hidden.bs.popover', function () {
$(this).popover('destroy');
console.debug("'hidden.bs.popover' triggering twice!");
});
答案 1 :(得分:0)
测试此代码 点击我
$('.pop').popover();
$('.pop').on('mouseout',function(){
$(this).popover('hide');
})