如何实现点击选项时自动关闭其他展开项的JavaScript交互效果
发布时间 - 2026-02-01 00:00:00 点击率:次本文介绍如何用原生javascript实现“单选式折叠面板”:点击一个选项时,自动收起其他已展开的内容区域,仅保留当前项展开,提升用户体验与界面一致性。
在构建常见 FAQ、手风琴(Accordion)或分步引导类 UI 时,常需确保同一时间仅

核心思路是:每次点击前,先统一收起所有已展开的区块,再对目标区块执行切换逻辑。以下是优化后的完整实现(已去除重复逻辑,增强可维护性):
✅ 关键改进点说明:
- 使用 closeAllSections() 函数抽象公共操作,避免三段重复的 querySelectorAll('.showing') 逻辑;
- 每次点击先判断目标是否已展开:若已展开则收起(支持“点击收起”),否则先清空其他、再展开目标;
- 严格调用 e.preventDefault()(注意原代码中漏掉了括号 e.preventDefault() → ❌ e.preventDefault 是无效的);
- 所有选择器均基于类名,兼容现代浏览器,无需依赖 jQuery。
⚠️ 注意事项:
- 确保 HTML 中每个 .secenek-* 触发元素与其对应 .secenek-*-kismi 内容块一一匹配且存在;
- 若后续新增选项(如 .secenek-4),建议改用事件委托 + 数据属性方式(例如 data-target=".secenek-4-kismi"),进一步提升扩展性;
- CSS 中需定义 .showing 的显示样式(如 display: block; 或配合 max-height 实现过渡动画)。
通过以上结构化处理,即可稳定实现“点击即切换、展开即独占”的交互行为,兼顾功能性、可读性与可维护性。
# css
# javascript
# java
# jquery
# html
# 浏览器
# ssl
# ai
# win
# 委托
# 事件
# 选择器
# display
# ui
# 多个
# 他已
# 绑定
# 如何用
# 清空
# 三段
# 单选
# 有一个
# 再对
# 结构化
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
LinuxShell函数封装方法_脚本复用设计思路【教程】
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Swift中循环语句中的转移语句 break 和 continue
Python高阶函数应用_函数作为参数说明【指导】
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
网站图片在线制作软件,怎么在图片上做链接?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
高端网站建设与定制开发一站式解决方案 中企动力
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
php 三元运算符实例详细介绍
Laravel如何与Pusher实现实时通信?(WebSocket示例)
中国移动官方网站首页入口 中国移动官网网页登录
如何挑选优质建站一级代理提升网站排名?
详解Android中Activity的四大启动模式实验简述
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
网站制作大概多少钱一个,做一个平台网站大概多少钱?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何基于云服务器快速搭建网站及云盘系统?
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
如何在IIS7上新建站点并设置安全权限?
怎么用AI帮你为初创公司进行市场定位分析?
如何快速上传建站程序避免常见错误?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何在企业微信快速生成手机电脑官网?
JavaScript如何实现路由_前端路由原理是什么
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
如何正确选择百度移动适配建站域名?
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
如何在 React 中条件性地遍历数组并渲染元素
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
如何快速生成橙子建站落地页链接?
如何在Windows虚拟主机上快速搭建网站?
JS实现鼠标移上去显示图片或微信二维码
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
html如何与html链接_实现多个HTML页面互相链接【互相】
Laravel如何使用Telescope进行调试?(安装和使用教程)
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
如何在服务器上配置二级域名建站?
JavaScript如何实现类型判断_typeof和instanceof有什么区别

