'hidden.bs.modal'懒惰的触发?

时间:2015-06-18 14:33:56

标签: javascript jquery twitter-bootstrap

var switchProductDetailsToCartModal = function (target){
    $('#productDetailsModal').modal('hide'); // 'hidden.bs.modal' was not triggered here

    $('#carousel-example-generic').carousel('pause');
    // 
}

//'hidden.bs.modal' handler triggered here and carousel steel cycling


$(function() {
    $('#productDetailsModal').on('hidden.bs.modal', function (){
        $('#carousel-example-generic').carousel('cycle');
    });
});

这是正常的行为吗?无论如何,如何在modal('hide')之后立即触发'hidden.bs.modal'处理程序?

的jquery-1.11.3, bootstrap3

2 个答案:

答案 0 :(得分:1)

您需要使用其他活动hide.bs.modal。这将在调用隐藏后立即触发:

$('#productDetailsModal').on('hide.bs.modal', function (){
  $('#carousel-example-generic').carousel('cycle');
});

来自Bootstrap docs

  

hide.bs.modal - 调用hide实例方法时会立即触发此事件。

     

hidden.bs.modal - 当模态完成对用户隐藏时会触发此事件(将等待CSS转换为   完成)。

答案 1 :(得分:1)

尝试在开始时附加jquery文件,这对我有用。

新:

<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

旧:

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>