2016-05-01 15 views
7

v-on:click Kullanarak Vue.JS'deki div kimliğiyle bir değişken ayarlamak istiyorum - buna nasıl başvurabilirim?vue.js reference div id on v-on: click

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

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

cevap

12

Olay nesnesi $event ile olay işleyicisi uzatabilirsiniz. Bu senin ihtiyaçlarına uygun olmalıdır:

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

olay javascript geçirilir: Sadece bu argümanı kullanırken

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

, $event kesinlikle gerekli değildir. Şahsen çağırdığım yöntemde değerini kullandığımda, açıkça yazmayı tercih ediyorum.

Ancak kimse kısa notasyonu yazma durduramaz:

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

teşekkür ederiz. v-on ifadesine '($ event)' eklemeniz gerekmiyor gibi görünüyor ve hala çalışıyor. –

+1

'event.currentTarget', VueJS belgelerinde belirtilmemiştir - bu bilgi nereden geliyor? Bunu sormak için başka fonksiyonlar bulabilirim! –

+0

Bu doğru olsa da, buna karşı tavsiye ederim. Bunun arkasındaki sebep (bunu açıkça belirtmekle birlikte): Herhangi bir sayıdaki parametreyi iletebilir ve davranış aşağıdaki gibi diğer imzalar için kırılabilir: 'select (number, event)' – nirazul