You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte中mouseout事件在元素内部异常触发问题求助

解决mouseout事件意外触发的问题
  • 问题根源:mouseout事件的原生特性是,当鼠标从绑定元素移动到它的子元素(比如你的<a>内的<svg>、<path>)时就会触发,这才导致你在元素内移动时单次操作触发多次事件。
  • 修复方案:把on:mouseout替换为on:mouseleave。mouseleave只会在鼠标完全离开绑定事件的整个元素区域(包含所有子元素)时才触发,不会因为鼠标在子元素间移动而误触发。

修改后的代码:

<a
    href="https://github.com/blahblahblah"
    target="_blank"
    rel="noreferrer"
    class="flex"
    on:mouseenter={handleGithub}
    on:mouseleave={handleGithub}
    on:blur={handleGithub}
>
    <Icon type="github" />
    {#if githubHover}
        <p>GitHub</p>
    {/if}
</a>
  • 补充说明:Svelte REPL和本地环境的表现差异,大概率是环境中元素渲染细节(比如SVG结构、样式对元素边界检测的影响)导致,但核心问题还是事件类型选择错误。

内容的提问来源于stack exchange,提问作者michecode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:00:34