实现 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: 幻导航网 发现优质实用网站,开启网络探索之旅!

相关推荐
问天_观心39 分钟前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
洋洋不叫杨杨41 分钟前
揭秘当下知名的SEO优化渠道,你知道几个?
大数据·python
阿童木写作1 小时前
跨境图片翻译工具推荐:批量处理视频字幕与智能抠图
python·音视频
梦想的颜色1 小时前
OCR 识别原理与 Python 识图全实战:从文字提取到图像内容理解
python·计算机视觉·ocr·图像识别·python 识图
禹凕1 小时前
Dijkstra算法详解与应用
python·算法
别走!万哥爱你2 小时前
Python 中可以用于在已排序的列表中查找特定元素的位置的是什么?
python
Mr.朱鹏2 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
qiuhaipeng12 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
wxwx_bscxy3223 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite