Javascript 如何在会话超时时关闭所有活动引导模式?

Javascript 如何在会话超时时关闭所有活动引导模式?,javascript,jquery,twitter-bootstrap,modal-dialog,Javascript,Jquery,Twitter Bootstrap,Modal Dialog,我需要在用户空闲并通过会话超时时进行调用,该会话超时将关闭所有引导模式。活动的模态取决于用户当时在做什么,所以我想做一些包罗万象的事情 我试过: $('.modal').modal('toggle'); 当超时发生但我的模态仍然存在时。使用以下代码: $('.modal').modal('hide'); 此外,如果您想在模态隐藏时执行某些操作,则可以执行以下操作: $('.modal').on('hidden', function () { // write your code });

我需要在用户空闲并通过会话超时时进行调用,该会话超时将关闭所有引导模式。活动的模态取决于用户当时在做什么,所以我想做一些包罗万象的事情

我试过:

$('.modal').modal('toggle');

当超时发生但我的模态仍然存在时。

使用以下代码:

$('.modal').modal('hide');
此外,如果您想在模态隐藏时执行某些操作,则可以执行以下操作:

$('.modal').on('hidden', function () {
  // write your code
});
试着这样做:
$('.modal.in:visible').modal('hide')

正确的答案是缺少一些重要的东西

$('.modal').modal('hide') // closes all active pop ups.
$('.modal-backdrop').remove() // removes the grey overlay.

如果您希望用户正常使用页面,那么第二行非常重要。

这就是我在项目中不使用任何工厂代码或其他代码而使其正常工作的方式

//hide any open bootstrap modals
  angular.element('.inmodal').hide();
我有一个超时函数,它以
$rootScope.$emit('logout')的形式发出注销和“我的服务”中的侦听器如下所示:

$rootScope.$on('logout', function () {                    
                    //hide any open bootstrap modals
                    angular.element('.inmodal').hide();

                    //do something else here  

                });
如果要隐藏任何其他模态,如angular material dialog(
$mdDialog
)和sweet alert dialog的使用
angular.element('.modal dialog').hide()&
angular.element('.sweet alert').hide()


我不知道这是否是正确的方法,但它对我有效。

。因为使用
切换
将显示隐藏的模态,并隐藏显示的模态。但正如他提到的,如果一些模态打开,而另一些模态关闭,则可能会导致一些问题。所以最好使用更好的安全代码。我在说明你回答的原因,我同意,你没有包括原因。稍微好一点:
$('.modal.in').modal('hide')
。无需以关闭的模态为目标。
$('.modal').modal('hide')
本身对我很好(bootstrap3)。您可能会将其与jQuery的hide()函数混淆,后者将隐藏modal div,并保留灰色背景。在这种情况下,您需要在之后调用
$('.modal background').remove()
。@Grimbot否。这是在您使用多个模态时发生的。如果关闭外部模式而不关闭内部模式,则灰色覆盖将使页面无法使用。