本文讲解如何在 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: 幻导航网 发现优质实用网站,开启网络探索之旅!
相关推荐
IvorySQL6 小时前
PostgreSQL 日报|修复截断 zstd 备份检测(10 月 9 日)刘胡子大叔6 小时前
SQL 脚本的导入顺序代码什么用7 小时前
Spring对IoC的实现晒太羊的猫8 小时前
jvm面试题全栈练习生8 小时前
AI Agent 沙箱hz567899 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型广州浮点FLOATLIC9 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题程序员Sunday9 小时前
MySQL 为什么使用 B+ 树索引?把范围查询、回表和覆盖索引连起来半杯咖啡半行码9 小时前
Qt开发实战:数据库、MV 模式、QProcess与串口通信全攻略SEO_juper9 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗