2017-09-06 114 views
0

我正在尋找使img標籤可選。我的意思是,如果選擇或取消選擇照片,則獲得布爾值true/false。有任何想法嗎?Vue js圖像可選

<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

待辦事項你希望圖像像一個收音機組一樣,whe只有一個可以隨時選擇? –

+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

好的,謝謝Damon的回答,應該像你說的那樣,只需選擇一個項目,而不是兩個同時進行,就像一個單選按鈕的行爲。我只是瞭解你的代碼,但我無法看到任何圖像選擇,代碼看起來執行沒有任何錯誤,但我無法檢測圖像如何被選擇... – user8548238

+0

看到更新。 @ user8548238 – talkhabi

+0

是的,就是這樣! :) – user8548238