首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在弹出框外单击时隐藏弹出框

在弹出框外单击时隐藏弹出框
EN

Stack Overflow用户
提问于 2015-09-22 19:51:41
回答 1查看 58关注 0票数 0

以下是我的popover html代码:

代码语言:javascript
复制
<a data-placement="bottom"  style="float:right;margin-right:20px;" id="new-quote-popover" popover><img src="img/user.png"/>&nbsp;<b>{{UserName}}</b>
   <div id="popover-head" class="hide">USER DETAILS</div>
   <div id="popover-content" class="hide">

       <div class="row smallMargin">
           <div class="col-sm-4">
              varun
           </div>
           <div class="col-sm-8">
               <select name="selectopt"  style="width:80%">
                      <option value="001">001</option>
                      <option value="002">002</option>
               </select>
           </div>
      </div>


   </div>
   </a>

而popover的指令是

js:

代码语言:javascript
复制
app.directive('popover', function($compile){
    return {
        restrict : 'A',
        link : function(scope, elem){

            var content = $("#popover-content").html();
            var compileContent =function() {
             return $compile(content)(scope);
               };


            var title = $("#popover-head").html();
            var options = {
                content: compileContent,
                html: true,
                title: title
            };

            $(elem).popover(options);
        }
    }
});

我试图隐藏弹出窗口,因为它在it.But之外,因为它是在标签中我无法做so.please帮助我在这。我尝试与类名,id,但没有成功。

我检查了这个question,它对我不起作用

EN

回答 1

Stack Overflow用户

发布于 2015-09-22 20:06:32

您需要注入$document服务并在文档根目录上创建新的事件侦听器mousedown

代码语言:javascript
复制
$document.on('mousedown', addClickOutsideListener);

function addClickOutsideListener(event) {
    var target = event.target;
    while(target != document.body) {
        if(target == elem[0]) {
            //user clicked on Popover, nothing to do
            return;
        }

        if(!target.parentNode)
            return;
        target = target.parentNode;
    }

    hidePopover();
});

别忘了添加作用域销毁的监听器:

代码语言:javascript
复制
scope.$on('$destroy', function() {
    $document.off('mousedown', addClickOutsideListener);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32716139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档