javascript – 是否可以使用Vue.js触发事件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 是否可以使用Vue.js触发事件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1607字,纯文字阅读大概需要3分钟。
内容图文
我刚刚开始使用Vue.js并发现自己不断转向jQuery来帮助某些情况.最近,我试图“触发”(或模仿)某个事件,例如点击或模糊事件,但未成功.
我知道在jQuery中你可以做到以下几点:
$('#my-selector').trigger('click');
但是如何使用Vue.js实现这一目标呢?我想尽可能地避免使用jQuery.
以下面的例子为例:
<div id="my-scope">
<button type="button" v-on="click: myClickEvent">Click Me!</button>
</div>
<script>
new Vue({
el: "#my-scope",
data: {
foo: "Hello World"
},
methods: {
myClickEvent: function(e) {
console.log(e.targetVM);
alert(this.foo);
},
anotherRandomFunciton: function() {
this.myClickEvent();
}
}
});
</script>
如果我要调用anotherRandomFunciton,我希望它模拟(或触发)上面的click事件.但是,我尝试这个事件(或上例中的e)永远不会传递给函数.
Vue.js有实现这个目标的方法吗?
解决方法:
您需要使用v-el来获取对按钮的引用,如下所示:
<button type="button" @click="myClickEvent" v-el:my-btn>Click Me!</button>
然后,在您的方法中:
function anotherRandomFunction() {
var elem = this.$els.myBtn
elem.click()
}
它只是一个本机DOM点击事件.见v-el Documentation
或者从Vue 2.x开始:
<template>
<button type="button" @click="myClickEvent" ref="myBtn">
Click Me!
</button>
</template>
<script>
export default {
methods: {
myClickEvent($event) {
const elem = this.$refs.myBtn
elem.click()
}
}
}
</script>
由于Vue仅使用和侦听本机DOM事件.您可以使用Element#dispatchEvent触发本机DOM事件,如下所示:
var elem = this.$els.myBtn; // Element to fire on
var prevented = elem.dispatchEvent(new Event("change")); // Fire event
if (prevented) {} // A handler used event.preventDefault();
这不是完全理想或最佳实践.理想情况下,您应该有一个处理内部的函数和一个调用该函数的事件处理程序.这样,您可以随时调用内部.
内容总结
以上是互联网集市为您收集整理的javascript – 是否可以使用Vue.js触发事件?全部内容,希望文章能够帮你解决javascript – 是否可以使用Vue.js触发事件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。