0

我有下面的代码,它确实可以正常工作,但我觉得它很愚蠢,并希望有一个更干净的“切换”功能或类似的我可以使用,但它似乎只与可见性有关 - 我想设置一个变量(供以后使用)。

如果我想要一个用于对列进行排序(并将值放入变量)的切换功能,可以优化下面的内容吗?

<table>
<thead>
  <tr>
    <td>Col 1</td>
    <td>Col 2</td>
    <td>Col 3</td>
  </tr>
</thead>
<tbody>
  <tr>
    <td>A</td>
    <td>B</td>
    <td>C</td>
  </tr>
  <tr>
    <td>B</td>
    <td>C</td>
    <td>A</td>
  </tr>
</tbody>
</table>

还有 jQuery 的东西:

var column;
var order;

$('thead th').click(function () {

  // Get the current column clicked
  var thisColumn = $(this).text();

  // Check if the column has changed
  if(thisColumn == column) {
    // column has not changed

    if(order == "ascending") {
      order = "descending";
    } else {
      order = "ascending";
    }
  } else {
    // column has changed

    column = thisColumn;
    order = "descending";
  }

  // Replace text in DIV
  $("div").text("column=["+column+"], order=["+order+"]");

  // future code will use the sort order to get database
  // stuff with Ajax

});

在此处检查 JSFiddle 代码,http://jsfiddle.net/Psz5K/

4

1 回答 1

0

您可以使用.data()

$(this).data('order', 'ascending')

此外,它可以使用

var order= $(this).data('order');

小提琴演示

我认为这更好,因为您不需要任何(可能)全局变量来记住元素。只需执行另一个 DOM 查询,您就可以得到它们

于 2013-08-20T13:09:21.023 回答