Love_TingHai 2018-08-23 06:58 采纳率: 0%
浏览 6698
已结题

vue中,在循环中操作事件,如何控制元素展示隐藏

 <template>
    <div>
        <div class="firstLeverContainer" v-for="menu in menus">
            <div class="firstLever close" @click="openOrLoadChild(menu)">
                <span class="title">{{menu.menuName}}</span>
                <span class="drop">
                    <i class="fa fa-angle-down"></i>
                </span>
            </div>
            <div class="secondAllLeverContainer" v-bind:class="{isShow:isShow}">
                <child-menu v-for="childMenu in childMenus"></child-menu>
            </div>
        </div>
    </div>
</template>

比如:我点击第一元素,所有的secondAllLeverContainer都展开了,因为isShow是全局的,如何做,才能只执行当前循环体的中的事件呢

  • 写回答

3条回答 默认 最新

  • 風灬雲 2018-09-13 06:38
    关注

    看你需要的效果是什么的,1L的办法可以实现每一项的显示和隐藏的切换,就是可以同时显示多项,点击的时候只要把对应的isShow取反就可以;
    如果是每次只显示一项的话,就可以直接定义一个全局变量记录当前显示项的下标或者数组中的ID等唯一性的标识

     <template>
        <div>
            <div class="firstLeverContainer" v-for="menu,index in menus">
                <div class="firstLever close" @click="openOrLoadChild(index)">
                    <span class="title">{{menu.menuName}}</span>
                    <span class="drop">
                        <i class="fa fa-angle-down"></i>
                    </span>
                </div>
                <div class="secondAllLeverContainer" v-bind:class="{isShow:isShow===index}">
                    <child-menu v-for="childMenu in childMenus"></child-menu>
                </div>
            </div>
        </div>
    </template>
    
    openOrLoadChild(index){
        this.isShow=index
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?