【发布时间】:2019-02-27 19:19:12
【问题描述】:
我有一个清单
<li v-for="menu_item, key in menu" @click="clickMenu(key)" :ref="'menu'+key">
{{menu_item.name}}
</li>
在我的 vue 中我有
mounted(){
// This shows the $refs as being mounted and available
console.log(this.$refs)
console.log(this.$refs.menu1)
// Click menu item 2 seconds after mounting
this.$refs.menu1.click()
// click is UNDEFINED
},
methods: {
clickMenu:function(key){
console.log("CLICKED "+key)
},
}
我得到“无法读取未定义的属性‘点击’”
我如何简单地以编程方式触发对元素的点击?
Github 上的另一个回答说我应该这样做......
this.$refs.menu1.$el.click()
但这也没有定义??
这是一个 JSFiddle 希望有人能弄清楚 JSFIDDLE HERE!!
【问题讨论】:
-
是的,我知道我可以使用 javascript 获取元素并这样做。我想通过 Vue $refs 知道它是否可能。因为我看过以前的 SO 问题说上面是你如何做到的......但是......它显然不是
-
this在setTimeout上下文中的引用是什么?它实际上是否包含对您的 Vue 上下文的引用? -
@jdmcnair 忽略这一点,这并不重要,因为它只是用于说明目的。我有实际的触发方法,分开。我已经更新了一个 JSFiddle 来查看。看看我的意思
标签: javascript vue.js