任何人都可以告诉我如何检查bootstrap 3.0模态状态,是使用jQuery还是javascript打开或关闭。我使用了以下代码,但是当你打开一个模态一次时它会起作用,否则会给出数据未定义的错误。
if($('#addMemberModal').data('bs.modal').isShown == true){
console.log("Modal is open");
}
答案 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);
}