首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angular中(模糊)元素,除非它在子元素中单击

如何在angular中(模糊)元素,除非它在子元素中单击
EN

Stack Overflow用户
提问于 2018-08-23 16:33:39
回答 1查看 357关注 0票数 3

如何使用模糊,但不激活模糊时,它是单击子元素?我不能在li元素上触发单击事件。

代码语言:javascript
复制
<div class="select-menu">
  <div class="selected" tabindex="0" (blur)="showList = false" (click)="showList = !showList"><span>{{selected}}</span></div>
  <ng-container *ngIf="showList">
    <ul>
      <li *ngFor="let item of list; let i=index" (click)="selectItem(item, i)">
        <span>{{item}}</span>
      </li>
    </ul>
  </ng-container>
</div>
EN

回答 1

Stack Overflow用户

发布于 2018-08-27 20:30:00

如果你想要一个像弹出窗口一样的“点击外部框必须关闭框”,那么你可以在document上注册一个click侦听器,并确定点击是否在你的框区域之外:

代码语言:javascript
复制
export class BoxComponent {

    openedBox = false;

    @ViewChild('box', { read: ElementRef }) boxRef: ElementRef;

    @HostListener('document:click', ['$event'])
    clickOutsideCurrentPopup(event: Event) {
        if (this.openedBox) {
            // if clicked outside only
            if (!this.boxRef.nativeElement.contains(event.target)) {
                this.openedBox = false; // or do whatever you want to close your box
            }
        }
        // else is already closed, do nothing
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51981452

复制
相关文章

相似问题

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