Javascript Twitter引导模式隐藏事件只触发一次
我使用的页面上定义了一个模式(“议程模式”)。 单击触发器(.agenda item)时,我将显示远程内容的此模式,如下所示:Javascript Twitter引导模式隐藏事件只触发一次,javascript,twitter-bootstrap,modal-dialog,jquery-events,Javascript,Twitter Bootstrap,Modal Dialog,Jquery Events,我使用的页面上定义了一个模式(“议程模式”)。 单击触发器(.agenda item)时,我将显示远程内容的此模式,如下所示: $("body").on("click", ".agenda-question", function(e){ var url = <build my url here>; $("#agenda-modal").modal({ remote: url }); }); 当然,所有的一切都在 $(function() {...}); 这是可
$("body").on("click", ".agenda-question", function(e){
var url = <build my url here>;
$("#agenda-modal").modal({
remote: url
});
});
当然,所有的一切都在
$(function() {...});
这是可行的,但只有一次!当我第一次加载页面并单击触发器时,模式会加载&当我关闭模式时,警报就会发生。如果我再次单击同一触发器,模式将再次显示,但这次当它关闭时,警报不会发生
我不知道,但这是因为侦听器(on(“hidden”),function…)不再“绑定”了吗?我想,你总是能赶上比赛吗
模态的代码直接来自twitter:
<div class="modal hide fade" id="agenda-modal">
<div class="modal-body"></div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal">Close</button>
</div>
</div>
接近
有什么想法吗?我真的很想捕捉一个模式何时关闭,这样我就可以更新页面中本来会被更改的部分
顺便说一句,使用rails,不确定这是否重要…无法解决这一问题-看起来一切正常,但rails管道添加了相当多的js,因此我不能排除有东西干扰我的js的可能性 现在改用jquery的本机modals。这是Bootstrap的一个已知问题 问题是每次触发事件时都需要重新添加该事件,但需要延迟 以下是一个例子:
function hiddenModal() {
alert("hidden");
setTimeout(function() {
$("#agenda-modal").on("hidden", hiddenModal );
}, 222);
}
$("#agenda-modal").on("hidden", hiddenModal );
这类似于另一个问题,但针对不同类型的事件:
$("#agenda-modal").on("hidden", function() {
alert("hidden");
});
到
你的浏览器是什么?一些浏览器在第一次之后关闭页面警报。它是firefox,我见过它这样做-它会问我是否要停止进一步的警报,但通常是在5次左右之后。也在IE 9中测试了相同的结果。你能提供一个链接,指向这个bug/特性被正式记录为“已知问题”的地方吗?我可以确认这解决了这个问题。最好的解决方案是IMO!
$("#agenda-modal").on("hidden", function() {
alert("hidden");
});
$(document).on('hidden.bs.modal', '#agenda-modal', function () {
alert("hidden");
});