是否可以使用 Vue.js 触发事件? [英] Is it possible to trigger events using Vue.js?

查看:22
本文介绍了是否可以使用 Vue.js 触发事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚开始使用 Vue.js 并且发现自己在某些情况下不断地求助于 jQuery.最近,我尝试触发"(或模拟)一个事件,例如点击或模糊事件,但未成功.

我知道在 jQuery 中您可以执行以下操作:

$('#my-selector').trigger('click');

但是如何使用 Vue.js 实现这一点?我想尽可能地停止使用 jQuery.

以下面的例子为例:

<button type="button" v-on="click: myClickEvent">点击我!</button>

<脚本>新的 Vue({el: "#my-scope",数据: {foo: "你好世界"},方法: {myClickEvent:函数(e){控制台日志(e.targetVM);警报(this.foo);},另一个随机函数:函数(){this.myClickEvent();}}});

如果我要调用 anotherRandomFunciton,我希望它模拟(或触发)上述点击事件.但是,我尝试将事件(或上面示例中的 e)传递给函数.

Vue.js 有没有实现这个的方法?

解决方案

您需要像这样使用 v-el 来获取对按钮的引用:

然后,在您的方法中:

function anotherRandomFunction() {var elem = this.$els.myBtnelem.click()}

这只是一个原生 DOM 点击事件.参见 v-el 文档

或者从 Vue 2.x 开始: