Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Twitter引导模式隐藏事件只触发一次_Javascript_Twitter Bootstrap_Modal Dialog_Jquery Events - Fatal编程技术网

Javascript Twitter引导模式隐藏事件只触发一次

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() {...}); 这是可

我使用的页面上定义了一个模式(“议程模式”)。 单击触发器(.agenda item)时,我将显示远程内容的此模式,如下所示:

$("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");
});