gpt4 book ai didi

javascript - Angular 7 : close menu when click outside

转载 作者:行者123 更新时间:2023-11-29 18:43:36 25 4
gpt4 key购买 nike

我想知道每当在父 div #menu 中触发点击时,其中存在无关的 html 标签。

nativeElement.parent 对我不起作用。

HTML代码:

<button #toggleButton (click)="toggleMenu()"> Toggle Menu</button>

<div class="menu" *ngIf="isMenuOpen" #menu>
<div>
I'm the menu. Click outside to close me
</div>
</div>

Angular 脚本:

this.renderer.listen('window', 'click',(e:Event)=>{

if(e.target !== this.toggleButton.nativeElement && e.target!==this.menu.nativeElement){
this.isMenuOpen=false;
}
});

这是行不通的。

最佳答案

将主机添加到组件元标记。

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
host: {
"(window:click)": "onClick()"
}
})

停止传播()

The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.

toggleMenu($event) {    
$event.stopPropagation();
this.isMenuOpen = !this.isMenuOpen;
}

onClick() {
this.isMenuOpen = false;
}

示例:https://stackblitz.com/edit/angular-oenkbw

关于javascript - Angular 7 : close menu when click outside,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55452180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com