Jquery.I을 사용하여 테이블을 정렬하는 코드가 있습니다. 전환 기능을 사용하여 '오름차순'과 '내림차순'을 전환 할 수 있습니다. 헤더 테이블을 클릭하면 내용을 정렬해야합니다.Jquery 토글 함수
그러나 버그가있다 :
한번 클릭, 그것은 정렬, 내가 다시 클릭하면 다음, 필요한이 생겼다 것도 일종의 또 다시 (두 번째)을 클릭하지 두 번째 기능을 실행합니다.
토글은 두 번이 아닌 한 번의 클릭으로 기능을 전환해야합니다. 맞습니까? 첫 번째와 두 번째 클릭 사이에 더 이상 기다리는 경우 예상대로 일이 행동 것처럼 소리, 귀하의 게시물에서
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
원인, 직접 정렬하는 법을 배워야합니다. – ozsenegal
아주 좋았습니다. 다른 플러그인을 향해 나를 가리키는 사람들이 지겨워진다. 아무도 그들이 어떻게 일했는지 묻지 않고 다른 사람들의 작품을 사용하여 무엇인가를 배웠습니다. – dclowd9901