javascript - 单击屏幕上的任意位置关闭所有 Angular JS Bootstrap 弹出窗口?

标签 javascript jquery angularjs twitter-bootstrap

我正在使用 Angular 指令进行 Bootstrap 。

我在他们的示例中有一个弹出窗口:

<button popover="Hello, World!" popover-title="Title" class="btn btn-default ng-scope">Dynamic Popover</button>

当您再次单击该按钮时它会关闭。我想在用户点击任何地方时关闭它——以及任何其他打开的弹出窗口。

我没有看到执行此操作的内置方法。

最佳答案

angular.element(document.body).bind('click', function (e) {
    var popups = document.querySelectorAll('.popover');
    if(popups) {
        for(var i=0; i<popups.length; i++) {
            var popup = popups[i];
            var popupElement = angular.element(popup);

            if(popupElement[0].previousSibling!=e.target){
                popupElement.scope().$parent.isOpen=false;
                popupElement.remove();
            }
        }
    }
});

关于javascript - 单击屏幕上的任意位置关闭所有 Angular JS Bootstrap 弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916471/

相关文章:

javascript - HEAD 中 LINK 和 STYLE 元素的评估顺序

javascript - Bootstrap 表格行可点击行中的按钮

javascript - 如何防止在特定时间显示启动模式

jquery - 使用位置 : absolute in a container and jQuery

javascript - ng-bind 但存储内部值

javascript - 为什么在表单内填充 ng-model 后应该跟上 $scope.$apply?

javascript - 可以对文件 ://protocol? 使用react

javascript - 单击内容后如何使下拉按钮保持打开状态?

javascript - Bootply 79859 中选择多个缩略图图像问题

javascript - Angular Directive 未能添加元素图标