实现 Svelte 中基于数组索引的 details 元素单开单关交互

本文讲解如何在 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 静默部署操作手册
数据库·oracle
飞浪纪元[FWC–FE]26 分钟前
Qt 工程创建与 CMake / qmake 构建规范
开发语言·数据库·qt
Ivanqhz30 分钟前
MoE + LLM 应用
数据库·人工智能·pytorch·python·深度学习·算法·1024程序员节
Mr. zhihao33 分钟前
Deep Agent 架构深度解析:主Agent与子Agent完整交互机制与核心参数作用
python·ai·langgraph·deepagent
Tsuki_tl36 分钟前
【总结】Redis五大数据类型应用场景及基本命令
数据库·redis·后端·缓存·缓存中间件·redis命令·redis 五大数据类型
Gauss松鼠会36 分钟前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
狗凯之家源码网40 分钟前
iOS C2 V2 与 Python FastAPI 全链路远控系统深度评测
python·ios·fastapi
系统集成-鹰翔41 分钟前
ERP对接升级提示数据库迁移失败:SQLite逐版本事务到底回滚到哪一步
javascript·数据库·经验分享·后端
西瓜拿铁好喝42 分钟前
开源和闭源 AI 办公工具,分别适合谁
java·前端·数据库
明天也要努力学习1 小时前
深入理解 JVM 垃圾回收(GC)
java·jvm