Javascript Vue:无法访问事件对象
我想发出一个标准的Javascript Vue:无法访问事件对象,javascript,vuejs2,Javascript,Vuejs2,我想发出一个标准的JavaScript事件(除了Vue事件之外),因此在Vue组件中有以下代码: <template> <div> <input type="text" class="input" v-model.trim="value" :id="id" :placeholder="placeholder" :disabled="disabled" :required=
JavaScript
事件(除了Vue事件之外),因此在Vue组件中有以下代码:
<template>
<div>
<input
type="text"
class="input"
v-model.trim="value"
:id="id"
:placeholder="placeholder"
:disabled="disabled"
:required="required"
:readonly="readonly"
autocomplete="off"
@keyup="keyUp"
@focus="focus"
@click="click"
@dblclick="dblclick"
@change="change">
</div>
</template>
<script>
export default {
methods: {
change () {
// Vanilla event
let element = document.querySelector(`#${this.id}`);
let event = new Event('change', { 'bubbles': true, 'cancelable': false });
element.dispatchEvent(event);
// Vue event
this.$emit('change');
}
}
}
</script>
我错过了什么?这是一种预感,但我怀疑这可能与秩序有关。Vue将事件侦听器剥离到它所连接的元素中。创建vue后,尝试附加所有事件侦听器。我们让vue与现有javascript代码(包括事件侦听器)愉快地共存。但是我们不喜欢它,而且我们在处理旧东西方面取得了很好的进展。(您真的需要吗?您使用的是哪种浏览器?
Chrome版本60.0.3112.113
触发自定义事件的原因是什么?如果打开控制台,是否可以手动创建事件?是什么导致错误?浏览器?事件在那个版本的Chrome中是绝对可用的。好吧,我能看到的一件事是,如果你从元素本身发射,就像你做的那样,你最终会得到一个无限循环。您在输入元素上有一个更改处理程序,并从元素发出change
。但我无法复制您看到的事件错误。我将在安装组件后添加新的侦听器,以使其处于良好状态。不幸的是,我没有看到另一个解决方案,所以我想我必须找出这个解决方案。
'Event' is not defined