如图,三个标题分别有多个子元素。通过点击三个标题分别控制显示和隐藏。上代码

第一种情况:点击 青1,其所有的标题下的列表全部隐藏,也就是只有一个标题的会显示子元素

<div class="items" v-for="(item,index) in list">

<div class="item_top"  @click="clickTitle(index)"> //通过当前列表的index和data里面自定义的aIndex属性进行判断,如果相同,就显示当前子元素<span class="title">
{{item.title}}
</span><div class="item_right"><span class="num">{{item.items.length}}个</span><img src="data:images/top.png" alt="" v-show="aIndex == index"><img src="data:images/bottom.png" alt="" v-show="!aIndex == index"></div></div><!-- 子列表 --><div class="item" v-for="(proItem,proIndex) in item.items" v-show="aIndex == index">
{{proItem}}
</div></div>
clickTitle:function(index){

        if(aIndex == index){ 
            aIndex = -1; 
}else{
aIndex = index;
} }
//如果当前元素已经被点击并显示子列表,那么aindex肯定就等于index,
           
所以让aindex赋值为负值,所以此时,aindex和所有的标题的index都不相等,所以当前的被点击的会被隐藏。否则,当前被点击的被index赋值,并显示子元素

data: {
aIndex:'', //定义一个中间变量
list:[{
title:'青1',
items:[
'青岛市市立医院1','青岛市市立医院2','青岛市市立医院3'
],
show: false, //在循环里面加一个状态判断条件,在方法里面通过show状态判断是显示还是隐藏
},
{
title:'青2',
items:[
'青岛市市立医院1','青岛市市立医院2'
],
show: false,
},
{
title:'青3',
items:[
'青岛市市立医院1','青岛市市立医院2','青岛市市立医院3'
],
show: false,
},]
},

第二种情况:点击青1,显示青1下的子元素。点击青2或者其他,青1子元素依旧存在,不会有状态的改变。


//通过点击传过来的当前item下的show属性,动态的切换显示和隐藏,不影响其他的列表
<div class="items" v-for="(item,index) in list">
<div class="item_top" @click="clickTitle(item)">
<span class="title">
{{item.title}}
</span>
<div class="item_right">
<span class="num">{{item.items.length}}个</span>
<img src="data:images/top.png" alt="" v-show="item.show">
<img src="data:images/bottom.png" alt="" v-show="!item.show">
</div>
</div>
<!-- 子列表 -->
<div class="item" v-for="(proItem,proIndex) in item.items" v-show="item.show">
{{proItem}}
</div>
</div>
data: {
list:[{
title:'青1',
items:[
'青岛市市立医院1','青岛市市立医院2','青岛市市立医院3'
],
show: false, //在循环里面加一个状态判断条件,在方法里面通过show状态判断是显示还是隐藏
},
{
title:'青2',
items:[
'青岛市市立医院1','青岛市市立医院2'
],
show: false,
},
{
title:'青3',
items:[
'青岛市市立医院1','青岛市市立医院2','青岛市市立医院3'
],
show: false,
},]
},
clickTitle:function(item){
//通过点击传过来的当前item下的show属性,动态的切换显示和隐藏,不影响其他的列表
item.show = !item.show;
}

最新文章

  1. IntelliJ IDEA 绝对好用快捷键
  2. sql 的实用函数(包含日期函数、截取字符串函数)
  3. openfire xmpp 登录参数解析
  4. 实践总结 - 不可错过的Angular应用技巧
  5. SQL分页常用的两个存储过程
  6. 283 Move Zeroes
  7. vncserver改变屏幕分辨率
  8. c#之Redis实践list,hashtable
  9. nginx常用变量
  10. HDU 4906 状态压缩dp
  11. poj 2057 树形dp 贪心
  12. POJ3368(RMQ)
  13. python---连接MySQL第四页
  14. C语言 &#183; 数的统计
  15. 高通ASOC中的machine驱动
  16. c++11の条件变量
  17. matlab工作空间数据导入simulink
  18. (字典序问题) nyoj1542-最小字符串
  19. Pandas之索引
  20. MT【68】一边柯西一边舍弃

热门文章

  1. IDEA创建maven项目慢的不行
  2. pytorch固定部分参数
  3. umi+dva+antd新建项目(亲测可用)
  4. 【Oracle命令 】使用的sql语句之分组查询(group by)
  5. WPF 解决多个TreeViewItem同时触发某事件的简单方法
  6. java高并发系列 - 第7天:volatile与Java内存模型
  7. MySQL学习——操作数据库
  8. MySQL基础(MySQL5.7安装、配置)
  9. 0基础入门学习Python(第3章)
  10. 0基础入门学习Python(第1-2章)