Javascript 检查引导模式当前是否显示
我正试着把这两种方法结合起来。基于这个问题,我可以 然而,我只需要在modal关闭时执行按键。如果它是开着的,我不想听按键声 这是我目前的代码:Javascript 检查引导模式当前是否显示,javascript,jquery,twitter-bootstrap,twitter-bootstrap-3,bootstrap-modal,Javascript,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,Bootstrap Modal,我正试着把这两种方法结合起来。基于这个问题,我可以 然而,我只需要在modal关闭时执行按键。如果它是开着的,我不想听按键声 这是我目前的代码: if(!$(“#模态”)是(':visible')){ var listener=new window.keypress.listener(); simple_组合(“enter”,function()){ console.log('enter'); }); //我还有20多位听众 } 如果模态打开,那么让侦听器保持连接,然后有条件地退出它们可能更容易
if(!$(“#模态”)是(':visible')){
var listener=new window.keypress.listener();
simple_组合(“enter”,function()){
console.log('enter');
});
//我还有20多位听众
}
如果模态打开,那么让侦听器保持连接,然后有条件地退出它们可能更容易
您可以设置如下内容:
var modalIsOpen = false
$('#myModal').on('shown.bs.modal', function(e) { modalIsOpen = true;})
$('#myModal').on('hidden.bs.modal', function(e) { modalIsOpen = false;})
然后,只需将以下行复制并粘贴到所有侦听器中
if (modalIsOpen) return;
堆栈片段中的演示
var modalIsOpen=false
$('#myModal').on('show.bs.modal',函数(e){modalIsOpen=true;})
$('#myModal').on('hidden.bs.modal',函数(e){modalIsOpen=false;})
var listener=new window.keypress.listener();
simple_组合(“s”,function()){
如果(打开)返回;
警惕(“你打了‘s’”);
});代码>
启动演示模式
&时代;
不要按按键
试着打高尔夫球
尝试点击S
引导会在打开模式时将CSS类中的添加到模式中,因此(假设您的模式具有id=“modal”
:
我认为您需要检查模态是否在事件函数中可见,而不是在不可见时创建侦听器。除非按键库以某种方式更改此行为,否则,如果模态对话框不可见且始终处于活动状态,则现在将在页面加载时创建侦听器。哦,是的,谢谢它的工作,但我有许多侦听器hink始终是检查的最佳解决方案?
var modalIsOpen = $('#modal.in').length > 0;