Framework vanilia nie działa sortowanie

0

Mam taki problem mam kod, który powinien sortować dane w tabeli, ale tak się nie dzieje.

<link rel="stylesheet" href="https://assets.ubuntu.com/v1/vanilla-framework-version-1.7.1.min.css" />

<table class="p-table--sortable" role="grid">
  <thead>
    <tr role="row">
      <th scope="col" role="columnheader" id="t-name" aria-sort="none">Name</th>
      <th scope="col" role="columnheader" id="t-users" aria-sort="none" class="u-align--right">Users</th>
      <th scope="col" role="columnheader" id="t-units" aria-sort="none" class="u-align--right">Units</th>
      <th scope="col" role="columnheader" id="t-revenue" aria-sort="none" class="u-align--right">Revenue</th>
    </tr>
  </thead>
  <tbody>
    <tr role="row">
      <td role="rowheader">Grape</td>
      <td role="gridcell" class="u-align--right">8</td>
      <td role="gridcell" class="u-align--right">19</td>
      <td role="gridcell" class="u-align--right">$70</td>
    </tr>
    <tr role="row">
      <td role="rowheader">Melon</td>
      <td role="gridcell" class="u-align--right">12</td>
      <td role="gridcell" class="u-align--right">23</td>
      <td role="gridcell" class="u-align--right">$99</td>
    </tr>
    <tr role="row">
      <td role="rowheader">Apple</td>
      <td role="gridcell" class="u-align--right">9</td>
      <td role="gridcell" class="u-align--right">17</td>
      <td role="gridcell" class="u-align--right">$120</td>
    </tr>
  </tbody>
</table>


No bo tutaj sortuje dobrze https://docs.vanillaframework.io/en/patterns/table-sortable i tam jest ten kod i go pobrałem, ale u mnie już sortować nie chce.

0

"tak" się nie dzieje, czyli co się dzieje?
Konsola w przeglądarce coś Ci pokazuje?

0
Patryk27 napisał(a):

"tak" się nie dzieje, czyli co się dzieje?
Konsola w przeglądarce coś Ci pokazuje?

Konsola pokazuje mi coś takiego

Błąd podczas przetwarzania wartości dla „-webkit-text-size-adjust”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:123
Nieznana pseudoklasa lub pseudoelement „-webkit-inner-spin-button”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:1355
Nieznana pseudoklasa lub pseudoelement „-webkit-search-decoration”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:1512
Nieznana pseudoklasa lub pseudoelement „-webkit-file-upload-button”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:1564
Nieznana własność „tab-size”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:7627
Nieznana własność „appearance”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:8485
Nieznana pseudoklasa lub pseudoelement „-webkit-input-placeholder”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:9978
Nieznana pseudoklasa lub pseudoelement „-ms-input-placeholder”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:10637
Nieznana własność „appearance”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:19114
Nieznana pseudoklasa lub pseudoelement „-webkit-search-results-decoration”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:19151
Nieznana pseudoklasa lub pseudoelement „-webkit-search-cancel-button”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:19213
Nieznana własność „appearance”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:19882
Nieznana własność „-moz-osx-font-smoothing”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:28434
Nieznana własność „font-smoothing”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:28520
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:34004
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:34423
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:35558
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:35773
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:35975
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:36306
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:36480
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:36707
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:37230
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:37772
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:39024
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:39266
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:39495
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:39853
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:40045
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:40299
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:41585
Nieznana własność „user-select”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:48889
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:49012
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:55887
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:58694
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:59279
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:59463
Oczekiwano deklaracji, ale odnaleziono „*”.  Przeskoczono do następnej deklaracji.  vanilla-framework-version-1.7.1.min.css:1:60592
Oczekiwano deklaracji, ale odnaleziono „*”.  Przeskoczono do następnej deklaracji.  vanilla-framework-version-1.7.1.min.css:1:60952
Oczekiwano deklaracji, ale odnaleziono „*”.  Przeskoczono do następnej deklaracji.  vanilla-framework-version-1.7.1.min.css:1:61371
Oczekiwano deklaracji, ale odnaleziono „*”.  Przeskoczono do następnej deklaracji.  vanilla-framework-version-1.7.1.min.css:1:61922
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:66955
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:129659
Oczekiwano deklaracji, ale odnaleziono „*”.  Przeskoczono do następnej deklaracji.  vanilla-framework-version-1.7.1.min.css:1:129952
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:130594
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:130786
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:131817
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:132296
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:138394
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:138838
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:139712
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:142170
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:144455
Nieznana pseudoklasa lub pseudoelement „-webkit-search-cancel-button”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:144626
Nieznana własność „appearance”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:144904
Nieznana pseudoklasa lub pseudoelement „-webkit-slider-runnable-track”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:144975
Nieznana pseudoklasa lub pseudoelement „-webkit-slider-thumb”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:145070
Nieznana pseudoklasa lub pseudoelement „-webkit-slider-thumb”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:145265
Nieznana pseudoklasa lub pseudoelement „-ms-track”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:145719
Nieznana pseudoklasa lub pseudoelement „-ms-fill-lower”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:145869
Nieznana pseudoklasa lub pseudoelement „-ms-fill-upper”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:145957
Nieznana pseudoklasa lub pseudoelement „-ms-thumb”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:146042
Nieznana pseudoklasa lub pseudoelement „-ms-thumb”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:146180
Nieznana pseudoklasa lub pseudoelement „-ms-tooltip”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:146222
Nieznana pseudoklasa lub pseudoelement „-webkit-slider-thumb”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:146293
Nieznana pseudoklasa lub pseudoelement „-ms-thumb”.  Zbiór reguł zignorowany z powodu błędnego selektora.  vanilla-framework-version-1.7.1.min.css:1:146455
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:146608
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:147982
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:148830
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:149023
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:149220
Błąd podczas przetwarzania wartości dla „word-break”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:149382
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:150049
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:150301
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:158658
Błąd podczas przetwarzania wartości dla „display”.  Deklaracja opuszczona.  vanilla-framework-version-1.7.1.min.css:1:161368

I dzieje się to, że jak klikam kolumnę górną to się nic nie dzieje.

0

Mój drogi, to jest framework css, a nie js. Nie dołączyłeś żadnego js'a, który by Ci tą tabelkę sortował, więc dlaczego oczekujesz, że Ci się posortuje?

Na stronie jest dodany taki kod sortujący tabelkę:


  (function() {
    /**
     * Sort a table by the column specified.
     *
     * @param {HTMLTableElement} table
     * @param {Number} col
     */
    function sortTable(table, col) {
      // For readability set the scope to the header.
      var header = this;

      // Helper 'contant'.
      var SORTABLE_STATES = {
        none: 0,
        ascending: -1,
        descending: 1,
        ORDER: ['none', 'ascending', 'descending']
      };

      // Based on the current aria-sort, get the next state.
      var newOrder = SORTABLE_STATES.ORDER.indexOf(header.getAttribute('aria-sort')) + 1;
      newOrder = newOrder > SORTABLE_STATES.ORDER.length - 1 ? 0 : newOrder;
      newOrder = SORTABLE_STATES.ORDER[newOrder];
      var currentSort = table.querySelectorAll('[aria-sort]');

      // Reset all header sorts.
      for (var i = 0, ii = currentSort.length; i < ii; i += 1) {
        currentSort[i].setAttribute('aria-sort', 'none');
      }

      // Set the new header sort.
      header.setAttribute('aria-sort', newOrder);

      // Get the direction of the sort and assume only one tbody.
      // For this example only assume one tbody.
      var direction = SORTABLE_STATES[newOrder];
      var body = table.tBodies[0];

      // Convert the HTML element list to an array.
      var newRows = Array.prototype.slice.call(body.rows, 0);

      // If the direction is 0 - aria-sort="none".
      if (direction === 0) {
        // Reset to the default order.
        newRows.sort(function (a, b) {
          return  a.getAttribute('data-index') - b.getAttribute('data-index');
        });
      } else {
        newRows.sort(function (a, b) {
          // Trim the cell contents.
          var c = a.cells[col].textContent.trim();
          var d = b.cells[col].textContent.trim();

          // If the content contains a number, parse it as a number.
          // This is very crude and should not be considered production ready.
          if (c.replace(/[^0-9]/gi, '') !== '' && !isNaN(c.replace(/[^0-9]/gi, ''))) {
            c = parseInt(c.replace(/[^0-9]/gi, ''));
            // Ascending for numbers and the alphabet are opposite.
            direction *= -1;
          }
          if (d.replace(/[^0-9]/gi, '') !== '' && !isNaN(d.replace(/[^0-9]/gi, ''))) {
            d = parseInt(d.replace(/[^0-9]/gi, ''));
            // Ascending for numbers and the alphabet are opposite.
            direction *= -1;
          }

          // Based on the direction, do the sort.
          if (direction === 1) {
            return c < d;
          } else {
            return c > d;
          }
        });
      }
      // Append each row into the table, replacing the current elements.
      for(var i = 0, ii = body.rows.length; i < ii; i += 1) {
        body.appendChild(newRows[i]);
      }
    }

    /**
     * Create a sortable table from a table.
     * @param {HTMLTableElement} table
     */
    function createSortableTable(table) {
      // Select sortable column headers.
      var clickableHeaders = table.querySelectorAll('[role="columnheader"][aria-sort]');
      // For this example, assume only one tbody.
      var rows = table.tBodies[0].rows;
      // Set an index for the default order.
      for (var row = 0, totalRows = rows.length; row < totalRows; row += 1) {
        rows[row].setAttribute('data-index', row);
      }

      // Attach the click event for each header.
      for (var i = 0, ii = clickableHeaders.length; i < ii; i += 1) {
        // Ensure we bind the event to the header and pass the table and column.
        clickableHeaders[i].addEventListener('click', sortTable.bind(clickableHeaders[i], table, i));
      }
    }

    /**
     * Make all --sortable tables on the page sortable.
     */
    function createSortableTables() {
      var tables = document.querySelectorAll('table.p-table--sortable');
      for (var i = 0, ii = tables.length; i < ii; i += 1) {
        createSortableTable(tables[i]);
      }
    }

    createSortableTables();
  })()

1 użytkowników online, w tym zalogowanych: 0, gości: 1