Twitter bootstrap 从twitter引导模式释放焦点

Twitter bootstrap 从twitter引导模式释放焦点,twitter-bootstrap,modal-dialog,focus,blur,Twitter Bootstrap,Modal Dialog,Focus,Blur,我在Twitter引导中有一个导航栏,上面有打开Modals的链接。 下面我有一个画布,其中拖动了不同的项目 我遇到的问题是,在一些移动设备上,每当我打开导航栏,从其中一个链接打开一个模式,点击模式的内容,然后全部关闭,焦点不知何故转移到该模式,导航栏下方的拖动变得非常缓慢。我发现重置它的方法是在导航栏上做一个简单的点击,然后一切恢复正常。但显然,我需要找到一种编程方式来释放焦点,而不必要求用户点击导航栏 如果您只需打开并关闭导航栏中的下拉列表,或者打开并关闭一个模式而不单击其内部,则不会出现问

我在Twitter引导中有一个导航栏,上面有打开Modals的链接。 下面我有一个画布,其中拖动了不同的项目

我遇到的问题是,在一些移动设备上,每当我打开导航栏,从其中一个链接打开一个模式,点击模式的内容,然后全部关闭,焦点不知何故转移到该模式,导航栏下方的拖动变得非常缓慢。我发现重置它的方法是在导航栏上做一个简单的点击,然后一切恢复正常。但显然,我需要找到一种编程方式来释放焦点,而不必要求用户点击导航栏

如果您只需打开并关闭导航栏中的下拉列表,或者打开并关闭一个模式而不单击其内部,则不会出现问题。 要使问题发生,必须在模式的内容内单击。我想这就是模态的焦点所在。然后问题就出现了。我关闭了模态,关闭了下拉列表,但不知何故,焦点仍然停留在某个地方,因为应用程序的其余部分遇到了麻烦,直到我点击导航栏,它似乎释放了焦点,一切又恢复正常

那么,我如何才能确保我完全释放对我所操纵的任何模式/下拉列表的关注呢。你可以想象,我一直在尝试各种模糊组合,包括:

    document.activeElement.blur();
    $("input").blur();
    $(".navbar-toggle").blur();             
    $(".navbar").blur();    
    $(".navbar-default").blur();    
    $(".collapse").blur();  
    $("#myModalHow").blur();
    $(".modal-dialog").blur();
    $(".modal-content").blur();
    $(".modal-header").blur();
    $(".modal-title").blur();
    $(".modal").blur();
    $(".close").blur();
等等

还尝试在另一个元素上设置和移除焦点

    $("#anotherelement").focus();
    $("#anotherelement").blur();
还尝试以编程方式模拟对导航栏的单击

    $( "#bs-example-navbar-collapse-1" ).trigger( "click" );

到目前为止运气不好。

我认为引导过程中有一个问题,即
隐藏.bs.popover
事件,因为它是在动画结束之前触发的。 您可以尝试使用
setTimeout()
来解决此问题:

$(".modal").on('hidden.bs.modal', function () {
    setTimeout(function() {
        document.activeElement.blur();
    }, 150);
});

我刚刚发现,如果我从模态声明中删除淡入淡出,因此使用class=“modal”,而不是“modal淡入淡出”,那么这几行就解决了('hidden.bs.modal',function(){document.activeElement.blur()上的问题$(“.modal”).on('hidden.bs.modal');但是,如果我使用淡入淡出模式,那么它将失败,我如何确保相同的解决方案适用于淡入淡出?谢谢