检查Bootstrap Modal当前是否显示

时间:2015-05-26 20:25:06

标签: javascript jquery twitter-bootstrap twitter-bootstrap-3 bootstrap-modal

我试图将Keypress pluginModal dialogs in Bootstrap结合起来。基于这个问题,我可以check if modal is open or closed using jquery

但是,如果关闭模式,我需要仅执行Keypress 。如果它打开了,我就不想听按键了。

到目前为止我的代码

if(!$("#modal").is(':visible')) {

  var listener = new window.keypress.Listener();

  listener.simple_combo("enter", function() {
    console.log('enter');
  });

  // I have over 20 other listeners
}

2 个答案:

答案 0 :(得分:4)

Bootstrap在打开时将id="modal" CSS类添加到模态,因此(假设您的模态具有var modalIsOpen = $('#modal.in').length > 0;

{{1}}

答案 1 :(得分:3)

如果模态打开,可能更容易让听众附加,然后有条件地退出。

您可以设置如下内容:

=NOW()-$A$1>335

然后将以下行复制并粘贴到所有侦听器中。

var modalIsOpen = false
$('#myModal').on('shown.bs.modal', function(e) { modalIsOpen = true;})
$('#myModal').on('hidden.bs.modal', function(e) { modalIsOpen = false;})

Stack Snippets中的演示



if (modalIsOpen) return;

var modalIsOpen = false
$('#myModal').on('shown.bs.modal', function(e) { modalIsOpen = true;})
$('#myModal').on('hidden.bs.modal', function(e) { modalIsOpen = false;})

var listener = new window.keypress.Listener();

listener.simple_combo("s", function() {
  if (modalIsOpen) return;
  alert("You hit 's'");
});