如何在关闭模态窗口后添加事件?

时间:2013-02-12 20:07:49

标签: jquery twitter-bootstrap modal-dialog

我有代码模式:

    <-- Button to trigger modal -->
<div id="result"></div>
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

<-- Modal -->
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

我应该在关闭的moal窗口之后有代码:

$('#result').html('yes,result');

请告诉我如何在关闭模态窗口(关闭或隐藏)时执行第二个代码?

4 个答案:

答案 0 :(得分:50)

如果你正在使用Bootstrap的3.x版本,现在正确的方法是:

$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

向下滚动到“事件”部分以了解详情。

http://getbootstrap.com/javascript/#modals-usage

只要版本4发布(http://v4-alpha.getbootstrap.com/components/modal/#events),这似乎保持不变,但如果确实如此,我将确保使用相关信息更新此帖子。

答案 1 :(得分:22)

我找到答案。非常感谢接下来的正确答案:

$("#myModal").on("hidden", function () {
  $('#result').html('yes,result');
});

此处的活动http://bootstrap-ru.com/javascript.php#modals

<强> UPD

对于Bootstrap 3.x,需要使用hidden.bs.modal

$("#myModal").on("hidden.bs.modal", function () {
  $('#result').html('yes,result');
});

答案 2 :(得分:2)

很少有可能有用的答案,特别是如果你有动态内容。

$('#dialogueForm').live("dialogclose", function(){
   //your code to run on dialog close
});

或者,打开模态时,请进行回调。

$( "#dialogueForm" ).dialog({
              autoOpen: false,
              height: "auto",
              width: "auto",
              modal: true,
                my: "center",
                at: "center",
                of: window,
              close : function(){
                  // functionality goes here
              }  
              });

答案 3 :(得分:0)

$('.close').click(function() {
  //Code to be executed when close is clicked
  $('#result').html('yes,result');
});