要实现展开一条时,其他都关闭的功能,可以在Vue组件中使用一个变量来控制展开与关闭的状态。

首先,在Vue组件的data属性中定义一个变量,用来表示当前展开的条目的索引:

data() {
  return {
    expandedIndex: -1
  }
}

然后,在展开的事件处理方法expandClick中,将被点击条目的索引赋值给expandedIndex,表示该条目被展开:

methods: {
  expandClick(index) {
    this.expandedIndex = index;
  }
}

接下来,在展开条目的HTML元素上绑定点击事件,并根据expandedIndex的值决定是否添加active类,以控制展开与关闭的样式:

<div v-for='(item, index) in items' :key='index'>
  <div @click='expandClick(index)' :class='{ active: expandedIndex === index }'>
    <!-- 展开内容 -->
  </div>
</div>

通过判断expandedIndex与当前条目的索引是否相等,来决定是否添加active类,从而控制展开与关闭的样式。

这样,当展开一条时,其他条目的expandedIndex值不等于当前展开条目的索引,因此不会添加active类,从而实现了展开一条时,其他都关闭的效果。

Flask + Vue 实现展开一条,其他都关闭的交互效果

原文地址: https://www.cveoy.top/t/topic/o9c7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录