javascript - 如何在RouterLink中包含一个按钮,以便在按钮单击时不会发生导航
问题描述
假设,我有以下标记:
<RouterLink tag="div" to="/somepath">
<p>Lorem ipsum dolor sit amet.</p>
...
<button>A button</button>
</RouterLink>
我正在使用,因为在元素内tag="div"
嵌套 a不是有效的 HTML5。<button>
a
使用此标记,单击 中的任意位置RouterLink
(包括段落和按钮)将导致导航。
但我的要求是点击按钮不会导致导航,但点击其他元素会。
因此,我使用div
with@click
处理程序来检查单击的元素是按钮还是其后代,如果不是则仅导航:
<div @click="navigateSomewhere">
...
</div>
export default {
methods: {
navigateSomewhere($event) {
if(!$event.closest("button"))
this.$router.push("/somePath")
}
}
}
但我想知道是否有更清洁的方法可以做到这一点。
我还创建了一个 MCVE:https ://codesandbox.io/s/vue-routerlink-button-3dlyx 。
解决方案
<button @click.prevent="">A button</button>
推荐阅读
- angular - 如何以角度重定向到身份服务器登录?
- docker - Docker 安装:ImportError: cannot import name '_gi' from 'gi' (/usr/lib/python3/dist-packages/gi/__init__.py)
- c++ - 由于先前安装了早期版本,Makefile 无法安装代码
- sql - postgreSQL 查询似乎在无限循环上运行
- r - 在 R 中将子集设置为正数时出现负下标错误
- php - 如何设置联系表格 7 插件以在没有电子邮件的情况下从来宾用户那里获取消息
- c++ - CMake - 此项目中使用了以下变量,但它们设置为 NOTFOUND
- google-app-engine - AppEngine 队列中每个实例运行 10 个任务的硬性限制
- python - 在数据框中复制行 x 次 - 提高性能
- javascript - 在jquery或javascript中重定向后获取iframe的当前url