我有一個代碼使用Jquery.I排序表使用切換功能來交替點擊,並切換beetween'上升'和'下降'sort.Once你點擊標題的表,它應該排序它的內容。JQuery的切換功能
然而,有一個bug:
我點擊一次,它進行排序,然後當我再次點擊,沒什麼happens.I需要再次點擊(第二次)執行第二功能,和排序一次。
切換應該切換功能與單擊,而不是雙倍,我是嗎?
下面是代碼:
firstRow.toggle(function() {
$(this).find("th:first").removeClass("ascendFirst").addClass("descendFirst");
$(this).find("th:not(first)").removeClass("ascend").addClass("descend");
sorted = $.makeArray($("td:eq(0)", "tr")).sort().reverse();
sorted2 = $.makeArray($("td:eq(1)", "tr")).sort().reverse();
sorted3 = $.makeArray($("td:eq(2)", "tr")).sort().reverse();
for (var i = 0; i < sorted.length; i++) {
$("td", "tr:eq(" + (i + 1) + ")").remove();
$("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted[i]).text()));
$("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted2[i]).text()));
$("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted3[i]).text()));
}
}, function() {
$(this).find("th:first").removeClass("descendFirst").addClass("ascendFirst");
$(this).find("th:not(first)").removeClass("descend").addClass("ascend");
sorted = $.makeArray($("td:eq(0)", "tr")).sort();
sorted2 = $.makeArray($("td:eq(1)", "tr")).sort();
sorted3 = $.makeArray($("td:eq(2)", "tr")).sort();
for (var i = 0; i < sorted.length; i++) {
$("td", "tr:eq(" + (i + 1) + ")").remove();
$("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted[i]).text()));
$("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted2[i]).text()));
$("tr:eq(" + (i + 1) + ")").append($("<td></td>").text($(sorted3[i]).text()));
}
});
爲什麼不使用tablesorter而不是滾動自己的版本:http://tablesorter.com/ – Powerlord 2010-04-05 14:40:34
原因,我需要學習自己排序 – ozsenegal 2010-04-05 14:46:28
非常好,Oz。我厭倦了人們將我指向其他插件。沒有人問他們如何工作,沒有人通過使用別人的創作來學習任何東西。 – dclowd9901 2010-04-05 14:51:48