2017-08-16 112 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() 
    } 
}