为了账号安全,请及时绑定邮箱和手机立即绑定

vue v-bind:class="{ activation:indexs==current}"

vue v-bind:class="{ activation:indexs==current}"

Smart猫小萌 2019-03-22 10:14:33
点击的时候下面的男装也会跟着变化。            <li v-for="(item,index) in items">              <div class="screnn-classify" @click="map(item,index)">                <p>{{item.name}}</p>                <p >                  <svg class="icon" :class="{active: item.visible}" aria-hidden="true">                    <use xlink:href="#icon-right"></use>                  </svg>                </p>              </div>              <div v-show="item.visible" class="structure">                <span v-for="(data,indexs) in item.datas"                      @click="addClass(indexs)"                      v-bind:class="{ activation:indexs==current}">{{data}}</span>              </div>            </li>            下面是js           current:"0",                      addClass:function(indexs){                this.current = indexs;              }问题截图:
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

你的女装、男装所有的属性都绑定为同一个事件处理函数,这没啥,但是两个状态明显不一样,所以要两个变量来保存,在item对象上再添加一个字段,eg:value,点击的时候把单个属性data存进去,最后比较v-bind:class="{ activation:data==item.value}",就可以了


查看完整回答
反对 回复 2019-04-09
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

<li v-for="(item,index) in items" :key="index">


查看完整回答
反对 回复 2019-04-09
?
忽然笑

TA贡献1806条经验 获得超5个赞

<div v-show="item.visible" class="structure">

    <span v-for="(data,indexs) in item.datas"

      @click="addClass(indexs)"

      v-bind:class="{ activation:indexs==current}">{{data}}</span>

</div>

这块写成组件 current addClass 放在新的组件中 把item.datas 传进去


查看完整回答
反对 回复 2019-04-09
  • 3 回答
  • 0 关注
  • 2603 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号