javascript - v-for产生的列表。用v-bind绑定属性,如何实现active的切换
阿神
阿神 2017-04-11 12:09:46
[JavaScript讨论组]

如题,我想实现点击某个li时,添加active效果,别的为默认样式;当点击另一个是,原来的active回去默认样式。用vue该如何实现?

我的代码如下,但是会全部一起被加上或移除active

    

点击后:

阿神
阿神

闭关修行中......

全部回复(4)
迷茫
<ul class="controller-checkboxs clearfix" >
    <li v-on:click="currentIndex = index" class="controller-checkbox-item" v-bind:class="{clicked: index === currentIndex}" v-for="(ctrlValue, index) in desc.args">
                    <a>{{ctrlValue}}</a>
    </li>
</ul>
data(){
    return{
        currentIndex: 0
    }
}

通过遍历序号进行判定即可

阿神

回來看一下才看清楚不是要多選而是單選,改了下:

看起來你好像把狀態寫成使用同一個變量...

應該是要把狀態定義在每個 desc.args

data() {
  return {
    desc: {
       args: [
          {
            selected: false
            // ...略  
          }
       ]
    }
  }
},
methods: {
  select(index) {
    this.desc.args.map( a => a.selected = false )
    this.desc.args[index].selected = true
  }
}
<li @click="select(index)" class="controller-checkbox-item" :class="ctrlValue.selected ? 'active' : ''" v-for="(ctrlValue, index) in desc.args">
    <a>{{ctrlValue}}</a>
</li>

大致上是這樣。

PHP中文网

v-class

怪我咯

根据index索引值以及预先定义的变量值进行判断,如果相等自动添加active
https://jsfiddle.net/zhoou/d6...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号