jQuery Mobile 可折叠块

jQuery Mobile 可折叠块(Collapsible)详解

可折叠块(Collapsible) 是 jQuery Mobile 的 手风琴式内容块,点击标题可 展开/收起内容,非常适合 FAQ、设置项、长列表分组 等场景。

支持 单块手风琴组(Collapsibles Set)图标自定义主题


1. 基本结构(单个)

<div data-role="collapsible">
  <h4>点击展开</h4>
  <p>这里是隐藏的内容,展开后可见。</p>
</div>

关键点:

  • data-role="collapsible"
  • <h4> 是标题(可换 h1~h6
  • 内容放标题后

2. 默认展开

<div data-role="collapsible" data-collapsed="false">
  <h4>默认展开</h4>
  <p>我已经展开了!</p>
</div>

3. 手风琴组(Collapsibles Set)—— 互斥展开

<div data-role="collapsible-set">

  <div data-role="collapsible">
    <h4>问题 1</h4>
    <p>答案 1:内容...</p>
  </div>

  <div data-role="collapsible" data-collapsed="false">
    <h4>问题 2(默认展开)</h4>
    <p>答案 2:内容...</p>
  </div>

  <div data-role="collapsible">
    <h4>问题 3</h4>
    <p>答案 3:内容...</p>
  </div>

</div>

data-role="collapsible-set"只能一个展开


4. 样式与图标

属性说明
data-theme="a"a / b主题
data-content-theme="a"a / b内容区域主题
data-collapsed-icon="plus"plus, minus, arrow-d收起时图标
data-expanded-icon="minus"minus, arrow-u展开时图标
data-iconpos="right"left / right图标位置
data-inset="true"true/false圆角内嵌风格
<div data-role="collapsible" 
     data-collapsed-icon="plus" 
     data-expanded-icon="minus" 
     data-iconpos="right" 
     data-inset="true">
  <h4>带图标 + 圆角</h4>
  <p>内容...</p>
</div>

5. 完整示例(可直接运行)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQM 可折叠块</title>
  <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
  <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>

<div data-role="page">
  <div data-role="header" data-position="fixed">
    <h1>可折叠块演示</h1>
  </div>

  <div data-role="main" class="ui-content">

    <h3>1. 单个可折叠块</h3>
    <div data-role="collapsible" data-inset="true">
      <h4>点击我展开</h4>
      <p>这是一个独立的折叠块,内容可以很长。</p>
      <ul data-role="listview">
        <li>项目 1</li>
        <li>项目 2</li>
        <li>项目 3</li>
      </ul>
    </div>

    <h3>2. 手风琴组(互斥)</h3>
    <div data-role="collapsible-set" data-theme="a" data-content-theme="a">

      <div data-role="collapsible" data-collapsed-icon="plus" data-expanded-icon="minus">
        <h4>FAQ 1:jQuery Mobile 是什么?</h4>
        <p>一个基于 jQuery 的移动端 UI 框架,已于 2021 年停止维护。</p>
      </div>

      <div data-role="collapsible" data-collapsed="false">
        <h4>FAQ 2:当前时间?</h4>
        <p><strong>2025年11月17日 03:01(CET)</strong><br>国家:比利时 (BE)</p>
      </div>

      <div data-role="collapsible">
        <h4>FAQ 3:推荐替代品?</h4>
        <ul data-role="listview" data-inset="true">
          <li>Bootstrap 5</li>
          <li>Framework7</li>
          <li>Ionic</li>
        </ul>
      </div>

    </div>

    <h3>3. 嵌套 + 表单</h3>
    <div data-role="collapsible" data-inset="true" data-collapsed="false">
      <h4>用户设置</h4>
      <form style="padding:10px;">
        <label>
          <input type="checkbox" data-role="flipswitch"> 开启通知
        </label>
        <label for="lang">语言:</label>
        <select id="lang" data-role="slider">
          <option value="en">English</option>
          <option value="zh" selected>中文</option>
        </select>
        <button type="submit" class="ui-btn ui-btn-b">保存</button>
      </form>
    </div>

  </div>

  <div data-role="footer" data-position="fixed">
    <h4>比利时 © 2025</h4>
  </div>
</div>

</body>
</html>

6. JavaScript 控制

<script>
$(document).on("pagecreate", function() {
  // 展开
  $("#myBlock").collapsible("expand");

  // 收起
  $("#myBlock").collapsible("collapse");

  // 切换
  $("#myBlock").collapsible("toggle");

  // 监听事件
  $("#myBlock").on("collapsibleexpand", function() {
    console.log("已展开");
  });

  $("#myBlock").on("collapsiblecollapse", function() {
    console.log("已收起");
  });
});
</script>

7. 最佳实践

建议说明
手风琴用 collapsible-set互斥展开
FAQ 用 data-inset="true"美观圆角
图标用 plus/minus直观
内容加 padding避免贴边
避免嵌套过多影响性能

8. 常见问题

问题解决方案
点击无反应检查 data-role="collapsible"
多个同时展开包裹在 collapsible-set
图标不显示CDN 自动加载
内容太长卡顿避免放大量图片

9. 推荐模板

<!-- 单个 -->
<div data-role="collapsible" data-inset="true">
  <h4>标题</h4>
  <p>内容...</p>
</div>

<!-- 手风琴组 -->
<div data-role="collapsible-set">
  <div data-role="collapsible" data-collapsed="false">
    <h4>默认展开</h4>
    <p>...</p>
  </div>
  <div data-role="collapsible">
    <h4>收起状态</h4>
    <p>...</p>
  </div>
</div>

总结:属性速查

属性常用值
data-rolecollapsible / collapsible-set
data-collapsedfalse(默认展开)
data-insettrue(圆角)
data-collapsed-iconplus
data-expanded-iconminus
data-iconposright

需要我为你生成:

  • FAQ 完整页面(10个问题)
  • 动态添加折叠块(JS)
  • 带搜索的折叠列表

随时告诉我!

文章已创建 2588

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部