本文讲解如何在 Svelte 中为 #each 循环生成的多个 <details> 元素实现「点击展开当前项、自动收起其他项」的单选式交互,避免所有元素同步开关,并通过索引精准控制开闭状态。 本文讲解如何在 svelte 中为 `#each` 循环生成的多个 `` 元素实现「点击展开当前项、自动收起其他项」的单选式交互,避免所有元素同步开关,并通过索引精准控制开闭状态。在 Svelte 应用中,当使用 {#each} 渲染一组 <details> 元素时,若直接绑定同一个布尔变量(如 bind:open={isOpen}),会导致所有折叠面板联动开关------这显然不符合"仅展开当前项"的常见交互需求。正确解法是:为每个 <details> 独立关联其索引状态,通过监听 toggle 事件动态更新当前激活索引。? 推荐实现方案核心思路是维护一个响应式变量 opened,用于记录当前处于展开状态的元素索引(初始为 null 表示全部关闭)。在循环中,利用 open={opened === i} 控制每个 <details> 的显隐,并在 on:toggle 中判断 e.target.open 状态,仅在用户主动展开时更新 opened: 幻导航网 发现优质实用网站,开启网络探索之旅!
相关推荐
瑶总迷弟1 分钟前
银河麒麟 V10 ARM64 安装 Oracle 19c 静默部署操作手册飞浪纪元[FWC–FE]26 分钟前
Qt 工程创建与 CMake / qmake 构建规范Ivanqhz30 分钟前
MoE + LLM 应用Mr. zhihao33 分钟前
Deep Agent 架构深度解析:主Agent与子Agent完整交互机制与核心参数作用Tsuki_tl36 分钟前
【总结】Redis五大数据类型应用场景及基本命令Gauss松鼠会36 分钟前
GaussDB 整体架构解析狗凯之家源码网40 分钟前
iOS C2 V2 与 Python FastAPI 全链路远控系统深度评测系统集成-鹰翔41 分钟前
ERP对接升级提示数据库迁移失败:SQLite逐版本事务到底回滚到哪一步西瓜拿铁好喝42 分钟前
开源和闭源 AI 办公工具,分别适合谁明天也要努力学习1 小时前
深入理解 JVM 垃圾回收(GC)