2017-08-29 15 views
0

イベントを、Vueの@clickプロパティを使用して要素にバインドしています(これはjavascript .onclickプロパティと同じように動作します)。イベントがバインドされている要素を取得する

子のDOMノードからイベントをクリックしてイベントを呼び出すと、子のDOM要素がtargetというプロパティになり、イベントがイベントコールバック内に登録されたDOM要素にアクセスするために、内部に深く入れ子にされているかもしれません)。

<td @click="onCellClick($event)"> 
 
    <div class="text"> 
 
    <span>default</span> 
 
    </div> 
 
</td>

+0

そのvuejsコンポーネント内に、私は 'this' –

+0

を使用してみてくださいリストまたはグリッドの場合 – korun

答えて

3

私はイベントのtarget

currentTarget対event.targetはイベントをトリガするものであるとの混同があると思いますディスパッチャからt riggerとevent.currentTargetはリスナーを割り当てたものです。

Vue.component('cell', { 
    template: '#cell', 
    methods: { 
    onCellClick: function (e) { 
     console.log(e.currentTarget) 
    } 
    } 
}); 
+1

それは、私を混乱させたことは、イベント「currentTarget」がnullだったと記録しました。しかし、そのコールバックで利用できるので、それは素晴らしい作品です。ありがとう。 – korun

0

あなたはrefsを使用することができます。

<td @click="onCellClick($event)" ref="cell1"> 
    <div class="text"> 
    <span>default</span> 
    </div> 
</td> 

onCellClick(evt){ 
    console.log(this.$refs.cell1) 
} 
+0

を使用するとき、私もこの考えていますが、' V-for'を使用している場合、これは問題になりますので、私はVueのインスタンスを取得 'this' – korun

+1

あなたはref名のインデックスを使用して関数にインデックスを送り、それを呼び出すことでそれを克服することができます:this.' $ refs [index] ' – Tomer

関連する問題