2016-05-01 24 views
7

Utilizzo di v-on:click Vorrei impostare una variabile con l'ID del div in Vue.JS - come faccio a fare riferimento a questo?ID div di riferimento vue.js su v-on: fare clic su

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

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

risposta

12

È possibile estendere il vostro gestore di eventi con l'oggetto evento $event. Questo dovrebbe soddisfare le vostre esigenze:

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

L'evento è trasmesso in javascript:

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

Come accennato nei commenti, $event non è strettamente necessario, quando si utilizza solo questo argomento. Personalmente preferisco scriverlo esplicitamente, quando sto usando il suo valore nel metodo che sto chiamando.

Tuttavia, nessuno vi vieta di scrivere il breve notazione:

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

Grazie. sembrerebbe che tu non abbia bisogno di includere "($ event)" nella dichiarazione v-on e funzioni ancora. –

+1

'event.currentTarget' non è menzionato nei documenti VueJS - da dove provengono queste informazioni? Chiedo così posso trovare altre funzioni! –

+0

Mentre questo è corretto, vorrei sconsigliarlo. La ragione di ciò (oltre a renderla esplicita): puoi passare qualsiasi numero di parametri e il comportamento si interromperà per altre firme come: 'select (numero, evento)' – nirazul