讲师中心 微信公众号
AI工具推荐 视频效率加速

实现点击标题展开对应内容区块并自动收起其他已展开区块的交互效果

老墨小哥_4883

老墨小哥_4883

发布时间:2026-02-04 19:13:02

|

605人浏览过

|

来源于php中文网

原创

实现点击标题展开对应内容区块并自动收起其他已展开区块的交互效果

本文介绍如何使用 jquery 实现“点击标题展开对应 `.view-grouping-content` 区块,同时自动收起其他已展开区块”的折叠/展开(accordion)功能,强调结构匹配、dom 遍历逻辑与简洁可靠的事件处理。

在构建产品分类页、FAQ 列表或内容分组模块时,常需实现「单击标题展开对应内容,且仅允许一个区块保持展开」的交互效果。该需求本质是一个典型的 Accordion(手风琴)组件行为。核心在于:精准定位目标内容区块,并确保同一时间仅有一个 .view-grouping-content 可见。

✅ 正确的 DOM 遍历逻辑

观察 HTML 结构可知,每个 .product-header-title 标题都位于 .view-grouping-header 内,而其对应的内容区块 .view-grouping-content 是该 header 的紧邻下一个兄弟元素(即同级 div.view-grouping 下的直接后续子元素)。因此,应使用:

  • $(this).parent() → 获取标题的父容器 .view-grouping-header
  • .next('.view-grouping-content') → 精准获取其后紧跟的 .view-grouping-content

⚠️ 注意:不能使用 .siblings('.view-grouping-content') 或 .find(),因为内容区块并非标题的子元素或同级任意兄弟,而是特定结构下的下一个兄弟。

Expanso yaml-to-json
Expanso yaml-to-json

使用 Expanso Edge 管道将 YAML 输入转换为 JSON 格式。

下载

✅ 完整可运行代码

<!-- CSS:初始隐藏所有内容区块 -->
<style>
.view-grouping-content { display: none; }
</style>

<!-- HTML 结构(精简示意,实际可含多个 .view-grouping) -->
<div class="view-content">
  <div class="view-grouping">
    <div class="view-grouping-header">
      <a href="/product/football"><img  src="football.png.jpg" alt="实现点击标题展开对应内容区块并自动收起其他已展开区块的交互效果" ></a>
      <h1 class="product-header-title">Football World Cup</h1>
    </div>
    <div class="view-grouping-content">
      <h3>Football is a family of team sports...</h3>
      <p>There are conflicting explanations...</p>
    </div>
  </div>
  <!-- 更多 .view-grouping... -->
</div>

<!-- jQuery 脚本 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
jQuery(function($) {
  $('.product-header-title').on('click', function(e) {
    e.preventDefault(); // 可选:阻止默认跳转(若标题含链接且无需立即跳转)

    // 1. 先隐藏所有已展开的内容区块
    $('.view-grouping-content').hide();

    // 2. 再显示当前标题对应的内容区块
    $(this).parent('.view-grouping-header').next('.view-grouping-content').show();
  });
});
</script>

? 关键要点说明

  • 无需 $(document).ready() 中手动 .hide():CSS 已通过 display: none 控制初始状态,更高效、语义清晰。
  • .parent() 后建议限定选择器:写成 .parent('.view-grouping-header') 比 .parent() 更健壮,避免因 HTML 结构微调导致意外匹配。
  • 事件委托非必需:若 .product-header-title 是静态加载(非动态插入),直接绑定即可;如需支持动态添加,可改用 $('.view-content').on('click', '.product-header-title', ...)。
  • 可扩展性提示:如需添加平滑动画,将 .hide() / .show() 替换为 .slideUp() / .slideDown() 即可获得过渡效果。

✅ 总结

该方案以最小侵入性、最大可读性达成目标:结构清晰、逻辑明确、兼容性强。只要 HTML 严格遵循「标题在 .view-grouping-header 内,内容为紧邻下一兄弟 .view-grouping-content」的约定,此代码即可开箱即用,稳定支撑多区块折叠/展开交互。

热门AI工具

更多
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

621

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1216

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2302

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

2168

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

513

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

337

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

866

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

309

2026.01.13

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn