2017-08-16 7 views
2

vueを使用して、私は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() 
    } 
} 
関連する問題