vue.js - vuejs针对所有锚标记onclick
问题描述
我想在单击任何锚标记时调用一个方法。不可能在所有元素上定义@click
或定义。v-on
<a href="#">link1<a>
<a href="#">link2<a>
<a href="#">link3<a>
<a href="#">link4<a>
<a href="#">link5<a>
在 jquery 我可以做到这一点
$('a').click(function(){
//........
});
如何在 vuejs 中实现它
注意:我的应用程序中有 10 多个组件,a
标签分布在组件的每个地方。
解决方案
您可以在父/容器元素上附加点击处理程序,并通过以下方式检测目标/子元素被点击event.target
:
new Vue({
el: '#app',
methods: {
clicked(e) {
const container = e.currentTarget; // FYI
const anchor = e.target;
console.log(`${anchor.innerHTML} was clicked!`);
}
}
})
Vue.config.devtools = false;
Vue.config.productionTip = false;
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div class="container" @click="clicked">
<a href="#">Link #1</a>
<a href="#">Link #2</a>
<a href="#">Link #3</a>
<!-- more anchor elements here -->
</div>
</div>
推荐阅读
- php - 如何检查带有罗马数字的句子php
- c# - DbContext 错误:在前一个操作完成之前在此上下文上启动了第二个操作
- python - Django Python电子邮件验证多个用户之间没有共享电子邮件
- bash - Azure CLI - 用于设置 API 管理自定义域的 Bash 脚本
- c# - 如何在不中断用户的情况下缓存对象?
- jsoup - 有没有获取 jSoup jar 版本的方法?
- asp.net - aspx.vb 中未提供存储过程的参数
- url - 打开 URL 时 PERSISTED_QUERY_NOT_FOUND
- erlang - 是否可以在不停止我的程序的情况下调用内部调用“halt()”的函数?
- reactjs - React useRef 不适用于 Material UI TextField