2017-08-16 77 views
2

使用vue,我试图通过点击触发多个事件并传递'event'变量,以便我可以使用event.target触发事件和传递事件变量的多种方法

我尝试这样做:

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

而且在我的方法,我试图

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

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

无法读取的不确定

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

回答

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() 
    } 
}