【发布时间】:2020-02-21 02:00:51
【问题描述】:
我正在使用如下代码在按下 ENTER 键时触发 click 事件:
<q-tab-panel name="option1" @keyup.enter.native="$refs.button.click()">
...
<q-btn ref="button" @click="function()" />
...
</q-tab-panel>
标签属于Quasar Framework的组件。这段代码不久前还可以工作,但现在需要这个更改才能工作:
<q-tab-panel name="option1" @keyup.enter.native="$refs.button.$el.click()">
也就是说,现在使用引用 $refs.button.click() 在按下 ENTER 时会产生错误:
[Vue 警告]:v-on 处理程序中的错误:“TypeError:无法读取未定义的属性 'defaultPrevented'”
为什么它以前可以工作,为什么现在不能工作?我看到有人提到它与 Vue 的版本有关,或者引用是在组件中使用而不是本机 DOM 元素的事实。见Is it possible to trigger events using Vue.js?。我也看到了Vue - when and why using $el,它没有回答为什么在它起作用之前它现在不起作用。
Vue 文档中关于$el 的内容如下:
Vue 实例管理的根 DOM 元素。
这是有道理的,但在不需要之前也没有解释为什么。就我而言,错误发生在 Vue 2.6.10 中。
【问题讨论】:
标签: javascript vuejs2 quasar-framework