vue循环出来的数据,怎么点击的时候,给当前的变色呢?

vue循环出来的数据,怎么点击的时候,给当前的变色呢?

我页面是这样写的


       <ol v-if="tooglezhi" class="ol_one">

                        <li v-for="(item,key) in arr" 

                               @click="son(item,key)"><span></span>{{item}}</li>

                    </ol>

https://img2.mukewang.com/5c961ebc0001b11d08000128.jpg

在data中

https://img2.mukewang.com/5c961ebe00011ed205420136.jpg

https://img2.mukewang.com/5c961ec000016b4706940100.jpg

我想要的效果是

https://img1.mukewang.com/5c961ec30001041704010320.jpg

我点击其中一个的时候 其中的变色,怎么用vue实现呢 我之前一直是用jquery写的


繁星淼淼
浏览 4448回答 4
4回答

哆啦的时光机

获取到的data,你可以自定义个变量,isActive,默认都是false,当你点击的时候,给当前这个isActive赋值为true就可以了,li上在绑定一个class名<li v-for="(item,key) in arr" click="son(item,key)" :class="{'active': item.isActive}"><span></span>{{item}}</li>

呼啦一阵风

data:index:0<li v-for="(item,key) in arr" @click="key=index" :class="key==index?'active':''"><span></span>{{item}}</li>

慕田峪7331174

<div :class="{active: 'currentKey === key'}"></div>data() {&nbsp; &nbsp; currentKey: 0},methods: {&nbsp; &nbsp; son(key) {&nbsp; &nbsp; &nbsp; &nbsp; this.currentKey =&nbsp; key&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript