2016-05-01 13 views
7

を使用v-on:clickを使用しています.Vue.JS内のdivのIDを使用して変数を設定したいと思います。vue.js参照div id on v-on:

<div id="foo" v-on:click="select">...</div> 

<script> 
    new Vue({ 
     el: '#app', 
     data: { 
     }, 
     methods: { 
      select: function(){ 
       divID = this.id // ?? 
       alert(divID) 
      } 
     } 
    }) 
</script> 

答えて

12

あなたは、イベントオブジェクト$eventを使用してイベントハンドラを拡張できます。それはあなたのニーズに合わせなければならない:

<div id="foo" v-on:click="select($event)">...</div> 

イベントはJavaScriptで渡されます。コメントで述べたように

methods: { 
    select: function(event) { 
     targetId = event.currentTarget.id; 
     console.log(targetId); // returns 'foo' 
    } 
} 

$eventのみこの引数を使用するときに厳密に、必要とされていません。個人的には、私が呼んでいるメソッドでその値を使用しているときに、明示的に書く方が好きです。

しかし、誰も短い表記を書くことからあなたを停止しません:

<div id="foo" @click="select">...</div> 
+1

感謝を。 v-onステートメントに '($ event)'を含める必要はないようですが、それでも動作します。 –

+1

'event.currentTarget'はVueJSのドキュメントには記載されていません - この情報はどこから届いていますか?私は他の機能を見つけることができるように頼む! –

+0

これは間違いありませんが、私はそれに反対します。 'select(number、event)' – nirazul