如何在Blazor中正确使用onmouseenter事件?
Blazor中img元素onmouseenter事件正确实现方式
- 正确的事件绑定语法
Blazor绑定DOM事件的标准写法是@on{事件名},无参方法直接绑定方法名称即可,无需额外符号。正确代码示例:
<img @onmouseenter="ClickTest" />
- 你之前写法的问题
- 第一种写法
<img onmouseenter="@ClickTest()">:混淆了Blazor事件绑定与原生JS事件逻辑,原生onmouseenter只会执行JS代码,Blazor不会处理这种写法里的方法调用,因此无效。 - 第二种写法
<img @onmouseenter="ClickTest">本身语法正确,若仍不生效,排查以下几点:- 确保
ClickTest方法在当前组件的@code块或代码隐藏类中定义(默认private访问修饰符即可被Blazor调用)。 - 给img元素设置可见的宽高或有效src属性,空img元素可能无法触发悬停事件。例如:
<img src="your-image-url" @onmouseenter="ClickTest" style="width: 150px; height: 150px;" /> - 检查是否有其他元素覆盖在img上方,导致鼠标无法触发img的悬停事件。
- 确保
完整可运行的组件示例:
@page "/hover-test" <img src="https://picsum.photos/200" @onmouseenter="ClickTest" /> @code { void ClickTest() { Console.WriteLine("Image hovered"); } }
内容的提问来源于stack exchange,提问作者weird
相关产品推荐
相关产品推荐

