【发布时间】:2020-11-25 16:11:47
【问题描述】:
我有一个嵌套 div 的问题,它们都有 onmouseover/onmouseout 事件。我有一个导航菜单,它从屏幕一侧弹出,由 onmouseover 事件触发。在这个导航菜单中,我有一个弹出打开的子菜单,它也是由 onmouseover 事件触发的。两个打开事件独立工作正常,但是当一起运行时,触发器似乎被外部 div 拦截(外部 div 打开但内部 div 什么都不做)。
- 我尝试在父 div 和子 div 上都添加 @onmouseover:stopPropagation="true",但这没有任何效果。
- 我知道在 Blazor 5 中以类似于 html/js 的方式讨论了 onmouseenter/onmouseleave,但距离 11 月还有很长的路要走,支持仍然悬而未决。
如果我错过了任何技巧,请告诉我。代码如下(省略了 c# 代码 - 只是相应地修改了 collapseNavicationFlag 和 ExpandSubmenu 标志字符串。)
导航菜单
<div id="nav-bar" class="@collapseNavigationFlag" @onmouseover="ExpandNavigation" @onmouseout="CollapseNavigation">
<div>
<ul class="nav flex-column">
foreach (var navigationItem in navigationSection.NavigationItems)
{
<NavMenuSubmenu />
}
</ul>
</div>
导航菜单子菜单
<li>
<ul class="nav-submenu @expandSubmenu"
@onmouseover="ExpandSubmenu"
@onmouseout="CollapseSubmenu">
@foreach (var navigationSubItem in NavigationItem.NavigationSubItems)
{
<li class="nav-submenu-item px-3">
<a href="@navigationSubItem.Page">
@navigationSubItem.Title
</a>
</li>
}
</ul>
</li>
【问题讨论】: