Lav*_*nya 4 javascript angular angular7
我想知道每当在父 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>
Run Code Online (Sandbox Code Playgroud)
角脚本:
this.renderer.listen('window', 'click',(e:Event)=>{
if(e.target !== this.toggleButton.nativeElement && e.target!==this.menu.nativeElement){
this.isMenuOpen=false;
}
});
Run Code Online (Sandbox Code Playgroud)
这是行不通的。
Che*_*pan 11
将主机添加到组件元标记。
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
host: {
"(window:click)": "onClick()"
}
})
Run Code Online (Sandbox Code Playgroud)
停止传播()
Event 接口的 stopPropagation() 方法可防止当前事件在捕获和冒泡阶段进一步传播。
toggleMenu($event) {
$event.stopPropagation();
this.isMenuOpen = !this.isMenuOpen;
}
onClick() {
this.isMenuOpen = false;
}
Run Code Online (Sandbox Code Playgroud)
示例:https : //stackblitz.com/edit/angular-oenkbw
| 归档时间: |
|
| 查看次数: |
6106 次 |
| 最近记录: |