在事件和传递事件变量上触发多个方法

时间:2017-08-16 23:28:55

标签: javascript vue.js vuejs2

使用vue,我尝试在点击中触发多个事件并传递“事件”#39;变量,以便我可以使用event.target

我试过了:

<element @click="onSubmit(), onChange()"></element>

在我的方法中,我尝试了

methods: {
    onSubmit(e) {
       console.log(e)
    },

    onChange(e) {
      console.log(e)
    }
}
  

无法阅读财产&#39;目标&#39;未定义的

实现这一目标的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

在您的模板中

<element @click="onClick"></element>

在方法中

methods: {
    onSubmit(e) {
       console.log(e)
    },

    onChange(e) {
      console.log(e)
    },

    onClick(e){
      this.onSubmit(e)
      this.onChange(e)
    }
}

如果没有提供参数,event始终是事件处理程序的第一个参数。或者,您可以在模板中使用$event来引用当前事件。

<element @click="onClick($event)"></element>

我想还应该注意event是一个全局变量,无需传递即可在两个被调用的函数中访问。

methods: {
    onSubmit() {
       console.log(event.target) // will log the element that was clicked
    },

    onChange() {
      console.log(event.target) // will log the element that was clicked
    },

    onClick(){
      this.onSubmit()
      this.onChange()
    }
}