Vue:事件对象不可访问

时间:2017-08-28 14:47:17

标签: javascript vuejs2

我想发出一个标准的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

我错过了什么?

1 个答案:

答案 0 :(得分:-1)

这是一种预感,但我怀疑这可能与订单有关。 Vue在其附加的元素内部剥离事件侦听器。在您创建vue之后尝试附加所有事件监听器。我们很高兴与现有的javascript代码共存,包括事件监听器。但是我们不喜欢它,我们在摆脱旧东西方面取得了很好的进展。 (你真的需要吗?)