Internet Explorer中的Bootstrap模式事件的问题

时间:2013-09-10 13:38:33

标签: jquery internet-explorer twitter-bootstrap

我在Internet Explorer中遇到Bootstrap Modal事件的问题。

我正在构建的网站中有多个模态,每个模型都有许多链接,一旦模式被隐藏,单击时将执行不同的操作。问题是除非在Internet Explorer中至少打开并关闭了一次模态,否则不会触发这些事件。

有些代码,对于我的模态中的每个按钮都会重复此操作,关闭时会发生不同的事件:

$('#my-btn').on('click', function() {
    $("#my-modal").modal('hide').on('hidden', function(){
        alert("This wont fire in IE first time around");
    });
});

我的解决方法(UGLY):

var modal_func_to_run;  
$("#my-modal").on('hidden', function(){
    if ( modal_func_to_run == 'first' )
        alert("This will fire in IE");
    else if ( modal_func_to_run == 'second' )
        alert("The second button was clicked!");
});
// ....
$('#my-btn').on('click', function() {
    modal_func_to_run = 'first';
    $('#my-modal').hide();
});

有没有人有更好的方法在Internet Explorer中解决问题?

我运行Bootstrap 2.3.2和jQuery 1.10.1。

1 个答案:

答案 0 :(得分:1)

尝试

$('#my-btn').on('click', function() {
    $("#my-modal").on('hidden', function(){
        alert("This wont fire in IE first time around");
    }).modal('hide');
});

只需更改绑定顺序,以便在隐藏调用

之前将事件处理程序绑定到模态