angular - 如何防止关闭具有属性的父级内部的垫子菜单-鼠标悬停[隐藏]?
问题描述
我有一个父包装类和子角度材质菜单按钮。当我将鼠标悬停在父类之外时,我需要隐藏整个包装器。但是当我单击父包装类内部的按钮(打开 mat-menu)时,整个父级关闭。
我应该能够在父包装器内进行任何点击操作,并且只有当我将鼠标悬停在父包装器之外时它才会关闭。我该如何实施?
我试过添加
event.stopImmediatePropagation();
event.preventDefault();
event.stopPropagation();
在子垫菜单的按钮单击上,但父包装器仍在关闭
https://stackblitz.com/edit/angular-ekjzq5
这是我复制问题的 stackblitz 链接。单击菜单按钮时,它应该打开菜单而不是关闭整个父 div。
我应该能够单击按钮菜单,并且应该能够单击菜单中的项目
<button mat-button (mouseover)="showBase=true">Hover on me </button>
<div *ngIf="showBase" class="div-style">
<span (mouseleave)="showBase=false">
<button mat-icon-button [matMenuTriggerFor]="menu"
#menuTrigger="matMenuTrigger" >
<mat-icon>menu</mat-icon>
</button>
<mat-menu #menu="matMenu" [overlapTrigger]="false">
<span>
<button mat-menu-item>
<mat-icon>home</mat-icon>
<span>Home</span>
</button>
<button mat-menu-item>
<mat-icon>people_outline</mat-icon>
<span>Connecting</span>
</button>
</span>
</mat-menu>
</span>
</div>
解决方案
我修改了上面的回复。即使关闭了内部菜单,我也不希望基础容器关闭。所以我在它下面添加了一个覆盖容器,每当它进入覆盖容器时,我都会关闭基本容器。
这是更新的链接 https://stackblitz.com/edit/angular-yx376k
<mat-toolbar color="primary">
<span class="fill-remaining-space">
<button mat-button (mouseover)="showBase=true">Hover on me </button>
<div class="overlay" style="" (mouseover)="showBase=false;menuUp=false"></div>
<div *ngIf="showBase||menuUp" class="div-style" (mouseleave)="showBase=false">
<span>
<button mat-icon-button
[matMenuTriggerFor]="menu"
#menuTrigger="matMenuTrigger"
(menuOpened)="menuUp=true"
>
<mat-icon>menu</mat-icon>
</button>
<mat-menu #menu="matMenu" [overlapTrigger]="false">
<span >
<button mat-menu-item>
<mat-icon>home</mat-icon>
<span>Home</span>
</button>
<button mat-menu-item>
<mat-icon>people_outline</mat-icon>
<span>Connecting</span>
</button>
<button mat-menu-item>
<mat-icon>videocam</mat-icon>
<span>Let's talk</span>
</button>
<button mat-menu-item>
<mat-icon>exit_to_app</mat-icon>
<span>Logout</span>
</button>
</span>
</mat-menu></span>
</div>
</span>
<span class="fill-remaining-space">Application Title</span>
</mat-toolbar>
推荐阅读
- python - 使用 Python 套接字每秒发送 100 个 UDP 数据包,如何减少延迟?
- python - Python Folium 通过 pdfkit 和 selenium 导出地图错误
- excel - 从工作表中提取特定数据并为电子邮件创建附件
- java - 如何使用 Reactor 的 Flux 实现类似心跳的功能?
- reactjs - ReferenceError: afterAll 没有定义
- memory - CUDA cudaMemcpy 问题
- javascript - 如何在javascript中将反斜杠包装为带有单引号或双引号的数组项
- git - GitHub文件夹上有一个白色箭头,打不开
- algorithm - 如何用递归树求解 T(n) = T(n-1) + n^2
- python-3.x - tkinter 更改背景颜色菜单选项