我有下面的代码,它确实工作正常,但我发现它非常愚蠢,并希望有一个更清洁的“切换”功能或类似的我可以使用,但它似乎只与可见性有关 - 我想设置变量(供以后使用)。
如果我想要一个切换函数来对列进行排序(并将值输入变量),可以优化下面这个吗?
<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/
答案 0 :(得分:0)
您可以使用.data()
$(this).data('order', 'ascending')
此外,它可以使用
获取var order= $(this).data('order');
我认为这更好,因为您不需要任何(可能的)全局变量来记住元素。只是做另一个DOM查询,你就得到了它们