javascript – 检查是否有任何bootstrap模式打开

前端之家收集整理的这篇文章主要介绍了javascript – 检查是否有任何bootstrap模式打开前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果有任何bootstrap模式当前打开,如何检查?

背后的原因:如果一个模态是打开的,我想停用某个keyhandler.

解决方法

如果您使用的是 jquery,可以使用:
function isABootstrapModalOpen() {
    return $('.modal.in').length > 0;
}

香草JS解决方案:

function isABootstrapModalOpen() {    
    return document.querySelectorAll('.modal.in').length > 0;
}

解决方案适用于任何模态,而不仅仅是特定模态.

编辑:上面的代码测试,如果在任何给定时刻,模态是打开的.如其他答案所示,如果要在打开模态时禁用事件处理程序,则必须使用引导事件,如下所示:

// when any modal is opening
$('.modal').on('show.bs.modal',function (e) {
  // disable your handler
})

// when any modal is closing
$('.modal').on('hide.bs.modal',function (e) {
  // enable your handler
})

您还可以在事件处理程序中使用isABootstrapModalOpen来测试是否必须执行处理程序的代码(因此,每次打开/关闭模式时都不要启用/禁用处理程序).

function eventHandler(e) {
  // if a modal is open
  if(isABootstrapModalOpen()) {
    // prevent the event default action
    e.preventDefault();
    // and exit the function now
    return;
  }

  // if a modal is not open
  // proceed to the rest of the handler's code 
}
原文链接:https://www.f2er.com/js/155276.html

猜你在找的JavaScript相关文章