2017-09-06 22 views
0

私はimgタグを選択可能にしたいと考えています。私はそれが選択されているか選択解除されている場合、ブール値true/falseを取得することを意味します。何か案は?Vue js image selectable

<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

ドを選択したい場合に選択可能にすることができ、簡単な例でありますあなたは、画像がラジオグループのように動作するようにしたいいつでも1つだけを選択できますか? –

+0

こんにちはロイ、そうです。同時に選択することはできません。同時に選択することはできません。はい、まさにラジオボタンのようです。 – user8548238

答えて

0

これは、あなたがそれを

<script> 
    export default { 
     data(){ 
      return { 
       //... 
      } 
     }, 
     methods: { 
      selectHero(hero){ 
       this.$set(hero, 'selected', (hero.selected ? false:true)) //!hero.selected 
      } 
     } 
    } 
</script> 
テンプレートで

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

と一つだけのアイテム

<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

大丈夫、答えデーモンのおかげで、あなたが言ったように、ちょうど1つの項目を選択するだけで、ラジオボタンのように両方同時に、そうでなければならない。私はちょうどあなたのコードを理解していますが、私は選択された画像を見ることができません、コードはエラーなしで実行されますが、私は画像が選択されている方法を検出できません... – user8548238

+0

更新を参照してください。 @ user8548238 – talkhabi

+0

はい、それです! :) – user8548238