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

Next.js中如何让div内的Link忽略父级onClick事件?

解决Next.js Link与父级div onClick事件冲突的问题

要让内部的Link组件忽略父级div的onClick事件,只需阻止点击事件向上冒泡即可,具体实现如下:

在Link包裹的span元素上添加onClick事件,调用event.stopPropagation()方法,中断事件向父级div的传递:

<div onClick={() => router.push(`/${post.tag}/status/${id}`)}>
    <Link href={`/${username}`}>
        <span 
            className='text-blue-500 hover:underline'
            onClick={(e) => e.stopPropagation()}
        >
            {username}
        </span>
    </Link>
</div>

原理说明

浏览器事件默认会沿DOM树向上冒泡,点击span时会先触发自身关联的Link跳转逻辑,随后事件会传递到父级div触发其onClick回调。通过stopPropagation()可以终止这个冒泡流程,让父级div的onClick不再执行,从而实现点击Link时仅跳转自身指定地址的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:20:32