我想发出一个标准的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>
但是,我在引用vanilla事件时收到以下错误:
'Event' is not defined
我错过了什么?
答案 0 :(得分:-1)
这是一种预感,但我怀疑这可能与订单有关。 Vue在其附加的元素内部剥离事件侦听器。在您创建vue之后尝试附加所有事件监听器。我们很高兴与现有的javascript代码共存,包括事件监听器。但是我们不喜欢它,我们在摆脱旧东西方面取得了很好的进展。 (你真的需要吗?)