vue.js - 二级列表,怎么给子列表添加class

查看:332
本文介绍了vue.js - 二级列表,怎么给子列表添加class的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.点击一级菜单展开二级列表,然后点击子列表添加class,现在点击添加两个list中的子项都会添加class,具体看预览。

https://jsfiddle.net/forheyin...

解决方案

<script src="//unpkg.com/vue/dist/vue.js"></script>
<div id="app">
<ul class="list">
                <li v-for="(i,index1) in alInfo" class="son">
                  <p>
                    <span  @click="i.isA = !i.isA">个人常用短语(点击展开)</span>
                  </p>
                  <ul v-show="i.isA">
                    <li v-for="(s, index2) in i.list"  @click="tInfo(s, index1 ,index2)" :class="[acts == index1 + ',' + index2 ? 'active' : '']">
                      <p>点我就我加class,其它不能加</p>
                    </li>
                  </ul>
                </li>
              </ul>
</div>

var Main = {
    data() {
      return {
      act:0,
      acts: -1,
      isAll: true,
      alInfo: [],
      isAct: false
      }
    },
    created () {
        let test = [{name: 1,list:[{son: 1},{sons: 1}]}, {name: 2,list:[{son: 2},{sons: 2}]}]
      test.forEach(a => { a.isA = false })
      test.forEach(a => {
        a.isA = false
        a.list.forEach(b => {
          b.isA = false
        })
      })
      this.alInfo = test
      console.log(this.alInfo)
    },
    methods: {
       tInfo (s, index1, index2) {
        s.isA = !s.isA
        this.acts = index1 + ',' + index2
      }
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

这篇关于vue.js - 二级列表,怎么给子列表添加class的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆