Bootstrap 3模态:如何使用jquery / javascript检查模态是打开还是关闭

时间:2014-07-25 06:29:03

标签: jquery twitter-bootstrap-3

任何人都可以告诉我如何检查bootstrap 3.0模态状态,是使用jQuery还是javascript打开或关闭。我使用了以下代码,但是当你打开一个模态一次时它会起作用,否则会给出数据未定义的错误。

if($('#addMemberModal').data('bs.modal').isShown == true){
console.log("Modal is open");
}

5 个答案:

答案 0 :(得分:38)

你也可以像这样使用直接jQuery:

$('#myModal').is(':visible');

答案 1 :(得分:22)

你可以参考他们的页面 http://getbootstrap.com/javascript/#modals

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

<强> show.bs.modal
调用show实例方法时会立即触发此事件。如果由单击引起,则单击的元素可用作事件的relatedTarget属性。

<强> shown.bs.modal
当模态对用户可见时将触发此事件(将等待CSS过渡完成)。如果由单击引起,则单击的元素可用作事件的relatedTarget属性。

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

<强> hidden.bs.modal 当模态完成对用户的隐藏时将触发此事件(将等待CSS转换完成)​​。 loaded.bs.modal当模态使用远程选项加载内容时会触发此事件。

答案 2 :(得分:3)

尝试检查:

if($("#addMemberModal").data('modal') && $("#addMemberModal").data('modal').isShown ) {
    console.log("Modal is open");
}

if( $('#addMemberModal').hasClass('in') ) {
    console.log("Modal is open");
}

答案 3 :(得分:0)

如果以ajax加载的形式打开模态,则可以使用

$(document).on('hidden.bs.modal', '#photoModal', function () {
    cancel_camera();
    document.getElementById('PhotoPerson').innerHTML = '<img src="' +  photoPerson + '"/>';
});*

答案 4 :(得分:0)

我在AJAX调用中使用了以下代码。在setTimeout之后,我尝试正确关闭模型,并使用is()方法这样做。希望对别人有帮助。

complete: function(){
        setTimeout(function() {
            // model
            if($('#mdlNewOrder').is(':visible')) {
                $('#mdlNewOrder').modal('toggle');
            }
            //buttons
            $('#btn_closeNewOrder').prop("disabled", false);
            $('#btn_NewOrder').prop("disabled", false);
            // table reload
            $('#table_patientlist').DataTable().ajax.reload(null, false);
        }, 2800);
    }
相关问题