coder__Song 2023-06-14 16:02 采纳率: 66.7%
浏览 16
已结题

router-view

router-view中嵌套一个按钮,给里面的点赞按钮添加了stop事件,还是会触发router-view
这么解决呢
给这一整块信息包裹了一个router-view

img

  • 写回答

2条回答 默认 最新

  • 火花怪怪 2023-06-14 16:17
    关注

    如果您在 router-view 中嵌套了一个按钮,并为按钮添加了 stop 事件,但仍然无法阻止 router-view 的触发,可能是因为 router-view 的点击事件优先级较高,导致无法被阻止。

    为了解决这个问题,您可以尝试在按钮的 click 事件中手动阻止事件的传播,以避免触发 router-view。具体来说,您可以在按钮的 click 事件中使用 event.stopPropagation() 方法来阻止事件的传播。例如:

    html
    Copy
    <template>
      <div>
        <router-view></router-view>
        <div>
          <!-- 其他内容 -->
          <button @click.stop="handleClick">点赞</button>
          <!-- 其他内容 -->
        </div>
      </div>
    </template>
    
    <script>
    export default {
      methods: {
        handleClick(event) {
          // 阻止事件的传播
          event.stopPropagation()
          // 处理点赞逻辑
        }
      }
    }
    </script>
    
    

    在上述代码中,我们为按钮的 click 事件添加了 stop 修饰符,并在 handleClick 方法中使用 event.stopPropagation() 方法阻止事件的传播。这样,即使用户点击了按钮,也不会触发 router-view 的跳转。

    需要注意的是,使用 stop 修饰符仅能阻止事件的传播,而无法阻止事件的默认行为。如果您需要同时阻止事件的传播和默认行为,可以使用 prevent 修饰符,或者在事件处理函数中使用 event.preventDefault() 方法来阻止默认行为。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 已采纳回答 6月14日
  • 创建了问题 6月14日