javascript - 如何同步多个 UIKit 手风琴
问题描述
我在表格行内动态渲染 UIKit 手风琴,每个手风琴只包含一个子 ( li
) 元素。如何同步这些手风琴,以便当其中一个打开时,其他手风琴折叠起来?就像选项一样multiple: false
。这是一个 Vue 应用程序(如果您可以提供更具体的答案)。
解决方案
这个答案更好,性能更高
i
是循环的索引。
prevAccordionIndex
在 Vue 实例数据中定义并初始设置为 null。它用于保存上一个(最后一个)打开的手风琴的索引,因此无需$refs
像以前的答案那样循环查找打开的手风琴。
所有手风琴最初都折叠(关闭)。
methods: {
handleAccordionShow(index) {
if (this.prevAccordionIndex !== null) {
this.$uikit.accordion(this.$refs.categoryAccordion[this.prevAccordionIndex]).toggle(0, false)
this.prevAccordionIndex = index
} else {
this.prevAccordionIndex = index
}
},
handleAccordionHide(index) {
this.prevAccordionIndex = this.prevAccordionIndex === index ? null : index
}
}
<ul ref="categoryAccordion" @beforeshow="handleAccordionShow(i)" @beforehide="handleAccordionHide(i)" uk-accordion>
<li>...</li>
</ul>
推荐阅读
- angular - 如何在angular和asp.net核心项目中导入导出excel
- c - 这个字符串连接函数有什么问题
- python - QGridLayout 小部件重叠
- swift - 存储在 NSUserDefaults 中的复杂自定义对象。可编码解决方案 Swift 4
- python - 在 tkinter 树视图中的行内换行
- c# - 对同一个 datagridview 使用多个数据源
- css - 如何垂直对齐的箭头与
的内容
- python - 在 Tensorflow 中具有相同填充的均匀大小的内核
- truffle - 当我尝试使用 truffle 迁移时,出现此错误: ParserError: Expected token Semicolon got 'LParen'
- cordova - 如何重新安装已经在科尔多瓦的 config.xml 中重新编码的插件?