【问题标题】:Start HTML rows as collapsed by default默认情况下以折叠方式开始 HTML 行
【发布时间】:2019-08-18 17:22:33
【问题描述】:

我已经实现了这个示例的我的版本(使用 Vapor Swift 和 Leaf),它运行良好:Simple example of collapsible rows in HTML/CSS/JS

但是,我希望所有可折叠的行都默认隐藏。我不太了解 JS,但我认为修改它不会有帮助:

$(document).ready(function() {
    $('[data-toggle="toggle"]').change(function(){
        $(this).parents().next('.hide').toggle();
    });
});

我是否需要制作一个不同的 JS 脚本,如果需要,它将如何找到要隐藏的正确行(以及如何隐藏它们)?

【问题讨论】:

    标签: javascript html css html-table


    【解决方案1】:

    由于您使用的是 jQuery 库,因此您可以使用 jQuery 选择器来选择要隐藏的元素,并在文档加载时隐藏它们:

    看起来您想要在隐藏/显示之间切换的行都有.hide 类。所以你可以用它作为选择器:

    $('.hide').toggle();  // hide rows initially
    

    运行下面的 sn-p 看看它是如何工作的。最初,这些行是隐藏的。如果您点击“会计”或“管理”,行将展开。

    $(document).ready(function() {
      $('.hide').toggle();  // hide rows initially
      $('[data-toggle="toggle"]').change(function() {
        $(this).parents().next('.hide').toggle();
      });
    });
    table {
      width: 750px;
      border-collapse: collapse;
      margin: 50px auto;
    }
    
    th {
      background: #3498db;
      color: white;
      font-weight: bold;
    }
    
    td,
    th {
      padding: 10px;
      border: 1px solid #ccc;
      text-align: left;
      font-size: 18px;
    }
    
    .labels tr td {
      background-color: #2cc16a;
      font-weight: bold;
      color: #fff;
    }
    
    .label tr td label {
      display: block;
    }
    
    [data-toggle="toggle"] {
      display: none;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <table>
      <thead>
        <tr>
          <th>Regian</th>
          <th>Q1 2010</th>
          <th>Q2 2010</th>
          <th>Q3 2010</th>
          <th>Q4 2010</th>
        </tr>
      </thead>
      <tbody>
        <tbody class="labels">
          <tr>
            <td colspan="5">
              <label for="accounting">Accounting</label>
              <input type="checkbox" name="accounting" id="accounting" data-toggle="toggle">
            </td>
          </tr>
        </tbody>
        <tbody class="hide">
          <tr>
            <td>Australia</td>
            <td>$7,685.00</td>
            <td>$3,544.00</td>
            <td>$5,834.00</td>
            <td>$10,583.00</td>
          </tr>
          <tr>
            <td>Central America</td>
            <td>$7,685.00</td>
            <td>$3,544.00</td>
            <td>$5,834.00</td>
            <td>$10,583.00</td>
          </tr>
        </tbody>
        <tbody class="labels">
          <tr>
            <td colspan="5">
              <label for="management">Management</label>
              <input type="checkbox" name="management" id="management" data-toggle="toggle">
            </td>
          </tr>
        </tbody>
        <tbody class="hide">
          <tr>
            <td>Australia</td>
            <td>$7,685.00</td>
            <td>$3,544.00</td>
            <td>$5,834.00</td>
            <td>$10,583.00</td>
          </tr>
          <tr>
            <td>Central America</td>
            <td>$7,685.00</td>
            <td>$3,544.00</td>
            <td>$5,834.00</td>
            <td>$10,583.00</td>
          </tr>
          <tr>
            <td>Europe</td>
            <td>$7,685.00</td>
            <td>$3,544.00</td>
            <td>$5,834.00</td>
            <td>$10,583.00</td>
          </tr>
          <tr>
            <td>Middle East</td>
            <td>$7,685.00</td>
            <td>$3,544.00</td>
            <td>$5,834.00</td>
            <td>$10,583.00</td>
          </tr>
        </tbody>
      </tbody>
    </table>

    【讨论】:

    • 谢谢。这确实隐藏了它们。但是当您单击相关标签时它们不再隐藏(即,切换现在已损坏)。有什么理由认为我们破坏了其他原始切换功能?
    • 没关系,我明白了。我应该删除原来的功能。有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多