我可以检查是否显示/隐藏Bootstrap模式?

use*_*812 62 javascript twitter-bootstrap bootstrap-modal twitter-bootstrap-3

我可以通过Programatically检查Bootstrap Modal当前是显示/隐藏的吗?

喜欢 bool a = if("#myModal").shown();

我需要真/假

小智 126

alert($('#myModal').hasClass('in'));
Run Code Online (Sandbox Code Playgroud)

如果模态打开,它将返回true

  • 对我来说'$('#myModal').hasClass('show')`有效,**Bootstrap V4** (16认同)
  • if($('#myModal').hasClass('in')){/*做一些事情*/}最佳用法.谢谢 (2认同)

vip*_*rma 25

最好的方法在文档中给出

$('#myModal').on('shown.bs.modal', function () {
  // will only come inside after the modal is shown
});
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅http://getbootstrap.com/javascript/#modals


ctf*_*tf0 20

这是一个古老的问题,但无论如何,这是我用过的东西,因为有人在寻找同样的东西

if (!$('#myModal').is(':visible')) {
    // if modal is not shown/visible then do something
}
Run Code Online (Sandbox Code Playgroud)

  • 但是,如果在显示/隐藏动画期间执行它,我相信它可能会返回误报. (3认同)

Kam*_*esh 7

当模态隐藏?我们这样检查:

$('.yourmodal').on('hidden.bs.modal', function () {
    // do something here
})
Run Code Online (Sandbox Code Playgroud)


est*_*ani 5

所有 Bootstrap 版本:

var isShown = $('.modal').hasClass('in') || $('.modal').hasClass('show')
Run Code Online (Sandbox Code Playgroud)

独立于状态和版本关闭它:

$('.modal button.close').click()
Run Code Online (Sandbox Code Playgroud)

更多信息

Bootstrap 3 及之前

var isShown = $('.modal').hasClass('in')
Run Code Online (Sandbox Code Playgroud)

引导程序 4

var isShown = $('.modal').hasClass('show')
Run Code Online (Sandbox Code Playgroud)