2017-09-06 2 views
0

Ich bin auf der Suche nach dem Img-Tag wählbar. Ich meine, um einen booleschen Wert wahr/falsch zu erhalten, wenn das Foto ausgewählt oder abgewählt ist. Irgendwelche Ideen?Vue js Bild wählbar

<h2 class="headline mb-2 text-xs-center">Choose your hero:</h2> 
<v-layout row wrap primary-title v-for="hero in heroes" :key="hero.id"> 
    <v-flex xs6> 
    <v-avatar size="80px" class="grey lighten-1"> 
     <img v-bind:src="`${hero.href}`" alt="avatar"> 
    </v-avatar> 
    </v-flex> 
    <v-flex xs6 class="text-xs-right"> 
    <v-subheader>{{hero.name}}€</v-subheader> 
    </v-flex> 
</v-layout> 
</v-card> 
</template> 

<script> 
    export default { 

     data:() => ({ 

      bases: [{ 
       id: 1, 
       name: "Spiderman", 
       href: "../../static/spiderman.jpg" 
      }, { 
       id: 2, 
       name: "Batman", 
       href: "../../static/batman.jpg" 
      }] 
     }) 
    } 
</script> 
+0

Do nur ein Element wählen Sie möchten, dass die Bilder wie eine Radiogruppe agieren, whe Kann nur einer jederzeit ausgewählt werden? –

+0

Hallo Roy, ja, das ist es. Es sollte nur möglich sein, einen auszuwählen, nicht beide gleichzeitig. Ja, genau wie ein Optionsfeld. – user8548238

Antwort

0

Dies ist ein einfaches Beispiel, das Sie es

<script> 
    export default { 
     data(){ 
      return { 
       //... 
      } 
     }, 
     methods: { 
      selectHero(hero){ 
       this.$set(hero, 'selected', (hero.selected ? false:true)) //!hero.selected 
      } 
     } 
    } 
</script> 

in Vorlage

<img :src="hero.href" alt="avatar" :class="{selected: hero.selected}" @click="selectHero(hero)"> 

wählbar machen, und wenn Sie wollen

<script> 
    export default { 
     data(){ 
      return { 
       //... 
       selectedHero: {} 
      } 
     }, 
     methods: { 
      getSelectedHero(){ 
       return this.selectedHero; 
      } 
     } 
    } 
</script> 

<img :src="hero.href" alt="avatar" :class="{selected: selectedHero.id == hero.id}" @click="selectedHero = hero"> 

<style> 
    img.selected{ 
     border: solid 2px green; 
     /* and other styles ... */ 
    } 
</style> 
+0

ok, danke für die Antwort Damon, sollte sein, wie du gesagt hast, wähle nur einen Gegenstand, nicht beide gleichzeitig, so wie ein Radio-Button-Verhalten. Ich verstehe nur Ihren Code, aber ich kann kein Bild ausgewählt sehen, der Code erscheint ohne Fehler ausgeführt, aber ich kann nicht erkennen, wie das Bild ausgewählt ist ... – user8548238

+0

Siehe Updates. @ user8548238 – talkhabi

+0

Ja, das ist es! :) – user8548238