Vue.js中Router Link不显示激活状态、无法触发hover问题求助
Vue Router 导航hover失效问题解决
你提供的路由注册代码、router-link 声明代码本身不存在配置错误,该问题和Vue Router核心路由配置无关,可按以下优先级排查:
- 排查DOM层级遮挡问题:这是该场景下最高概率的诱因。打开浏览器开发者工具的元素面板,右键点击失效的Movies链接位置,查看选中的元素是否为router-link渲染生成的
<a>标签:如果选中的是其他层级更高的透明元素、浮动/绝对定位元素,说明导航被上层元素遮挡导致鼠标事件无法触发,调整对应元素的z-index属性、清除多余浮动定位规则即可解决。你删除Movies链接后相邻链接也出现同样问题,刚好符合固定位置遮挡的特征,遮挡区域刚好覆盖了导航栏第三个选项的位置。 - 排查样式冲突问题:Vue Router会默认给当前匹配的路由链接添加
router-link-active和router-link-exact-active两个激活类,如果你给这两个类、或者.link的激活态写了pointer-events: none规则,或者其他样式覆盖了hover态的规则,也会导致hover失效。直接在开发者工具样式面板手动触发元素的hover状态,即可查看是否有样式被覆盖。 - 排查全局事件拦截逻辑:如果页面存在全局的
mouseover、click事件委托逻辑,对特定路径的链接做了事件拦截,也会导致hover失效,删除对应拦截逻辑即可。
内容的提问来源于stack exchange,提问作者Muhammad Khan
相关产品推荐
相关产品推荐

