【问题标题】:Trigger multiple methods on event and pass event variable在事件上触发多个方法并传递事件变量
【发布时间】:2018-01-25 05:43:21
【问题描述】:

使用 vue,我试图在单击时触发多个事件并传递“事件”变量,以便我可以使用event.target

我试过了:

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

在我的方法中,我尝试了

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

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

无法读取未定义的属性“目标”

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

【问题讨论】:

    标签: javascript vue.js vuejs2


    【解决方案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()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-23
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多