首页 > 解决方案 > 在 Blazor 中移动子元素时防止 onmouseout 触发

问题描述

我有一个与此类似的问题,但涉及 Blazor。我有一个类似于弹出菜单的 div,其中包含用户可以单击以执行某些操作的子元素。当用户将鼠标移开时,我希望弹出 div 消失。我可以使用 onmouseout 事件,但问题是将鼠标移到弹出 div 中的子元素上会触发该事件。我希望 onmouseout 仅在鼠标移出父 div 时触发。到目前为止,我发现的唯一解决方案是使用 CSS 设置“pointer-events: none;” 在子元素上。但这也禁用了我想要维护的点击事件。Blazor 不支持在其他地方推荐的 onmouseleave。

那么如何在 Blazor 中的 onmouseout 事件在其子元素未触发的 div 上使用?

更新:

Cory 对在子元素上使用 @onmouseout:preventDefault 的回答确实有效。但是 mouseout 事件并没有可靠地触发。我通过在显示弹出窗口时在 div 容器上设置类成功地找到了解决方法,并使用 CSS onhover 来隐藏和显示

标签: c#blazor

解决方案


这可能不对,但您不能在子 HTML 元素上使用@onmouseout:preventDefaultor吗?@onmouseout:stopPropagation

我当然没有测试过,但是所有 Blazor 事件都存在这些:https ://docs.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-5.0#prevent-默认操作


推荐阅读