jQuery Mobile - 列切换

描述

列切换将列置于隐藏位置,并允许用户使用 data-mode = "columntoggle" 属性根据自己的选择选择列。


示例

以下示例演示了在 jQuery Mobile 框架中使用 column toggle 列切换。

<!DOCTYPE html>
<html>
   <head>
      <title>Table Column Toggle</title>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1">
      <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.3.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 = "header">
         <h2>Header</h2>
      </div>
      
      <table data-role = "table" id = "table-column-toggle" data-mode = "columntoggle" 
         class = "ui-responsive table-stripe" data-column-btn-theme = "b" 
         data-column-btn-text = "Click here to display columns...">
         
         <thead>
            <tr>
               <th data-priority = "1">Position</th>
               <th>Team</th>
               <th data-priority = "2">Rating</th>
               <th data-priority = "3">Points</th>
            </tr>
         </thead>
         
         <tbody>
            <tr>
               <th>1</th>
               <td>SOUTH AFRICA</td>
               <td>114</td>
               <td>3308</td>
            </tr>
            
            <tr>
               <th>2</th>
               <td>INDIA</td>
               <td>110</td>
               <td>3535</td>
            </tr>
            
            <tr>
               <th>3</th>
               <td>AUSTRALIA</td>
               <td>109</td>
               <td>4376</td>
            </tr>
            
            <tr>
               <th>4</th>
               <td>PAKISTAN</td>
               <td>106</td>
               <td>2977</td>
            </tr>
            
            <tr>
               <th>5</th>
               <td>NEW ZEALAND</td>
               <td>99</td>
               <td>3578</td>
            </tr>
            
            <tr>
               <th>6</th>
               <td>ENGLAND</td>
               <td>99</td>
               <td>3940</td>
            </tr>
            
            <tr>
               <th>7</th>
               <td>SRI LANKA</td>
               <td>89</td>
               <td>3123</td>
            </tr>
            
            <tr>
               <th>8</th>
               <td>WEST INDIES</td>
               <td>76</td>
               <td>2504</td>
            </tr>
            
            <tr>
               <th>9</th>
               <td>BANGLADESH</td>
               <td>47</td>
               <td>1026</td>
            </tr>
            
            <tr>
               <th>10</th>
               <td>ZIMBABWE</td>
               <td>5</td>
               <td>53</td>
            </tr>
         </tbody>
      </table>
      
      <div data-role = "footer">
         <h2>Footer</h2>
      </div>
      
   </body>
</html>

输出

让我们执行以下步骤,看看上面的代码是如何工作的 −

  • 将上述 html 代码保存为服务器根文件夹中的 jqm_table_column_toggle.html 文件。

  • 将此 HTML 文件打开为 http://localhost/jqm_table_column_toggle.html,将显示以下输出。


列选择器模式和设置列优先级

您可以使用 data-role = "table"data-mode = "columntoggle" 显示表格元素 如下标签所示的属性。

<table data-role = "table" id = "table-column-toggle" data-mode = "columntoggle">

您可以使用 data-priority 属性指定应隐藏或显示的列,并将优先级值从 1 分配到 6。表头将包含数据- 优先级属性,将在列菜单中可用。


主题和定制

默认情况下,按钮上的文本是"Columns...",但是您可以使用表格的 data-column-btn-text 属性更改文本。您还可以使用 data-column-btn-theme 属性为按钮或列选择器菜单设置主题。 通过将 table-stripe 类添加到表格元素,可以以条纹格式显示行。


使表格具有响应能力

您可以根据屏幕尺寸和方向使表格响应。媒体查询使用优先级指定对列的响应行为,并使用 min-width 属性编写媒体查询。 使用 em 单位设置的宽度将响应字体大小的变化,您可以通过将目标宽度除以 16 像素来计算以 em 为单位的像素值。


应用预设断点

您可以通过将 class = "ui-responsive" 添加到表元素来为每个优先级应用自定义断点,如下所示 −

<table data-role = "table" class = "ui-responsive" id = "table-column-toggle" data-mod 
   e ="columntoggle">

You can use following preset styles for each priority levels −

  • data-priority = "1" − 用于在 320px(20em) 处显示列。

  • data-priority = "2" − 用于在 480px(30em) 处显示列。

  • data-priority = "3" − 用于在 640px(40em) 处显示列。

  • data-priority = "4" − 用于在 800px(50em) 处显示列。

  • data-priority = "5" − 用于在 960px(60em) 处显示列。

  • data-priority = "6" − 用于在 1120px(70em) 处显示列。


分组列标题

列数据可以显示在财务数据的每个分组标题下。 您可以使用优先级属性来解析指定的行并将标题组显示为选项。 任何被赋予优先级的表格标题都将在列选择器菜单中可用。

❮ jQuery Mobile - 小部件