だから私はこのjavascript関数reOrderJSONを持っていて、配列を注文し、引数order
が「逆」に等しい場合、ソートされた直後に配列を逆にします。
関連リンクのクリック イベントにバインドされた関数もあります。
function reOrderJSON(subj,att,order,limit){
subj.sort(function (a, b,order) {
a = a[att],
b = b[att];
return a.localeCompare(b);
});
if(order === "reverse"){
subj.reverse();
console.log("Reverse passed a parameter to reOrderJSON")
}
layoutDate(subj,limit)
return depos = subj;
}
function clickReorder(e){
var orderingLink = e.target;
var reverseOrder = "";
var order = $(orderingLink).attr('data-order');
if(order === "desc" || order === "undefined"){
$(orderingLink).attr('data-order','asc');
console.log("Order detected as "+order)
reverseOrder = false;
}else{
$(orderingLink).attr('data-order','desc');
console.log("Order detected as "+order)
reverseOrder = "reverse";
}
var limit = $('.entries-per-page').val();
reOrderJSON(e.data.orderedObject,$(e.target).data('assoc'),reverseOrder,limit);
$('.result th').css('background','transparent');
$(orderingLink).closest('th').css({'background':'pink'});
return false;
}
$('.result').on("click", "th a", { orderedObject: depos }, clickReorder);
リンクは最初は次のようになります。
<th><a href="#" data-assoc="county">County</a></th>
ご覧のとおり、何が起こっているかを伝えるためにデバッグ テキストをログに記録しています。リンクを初めてクリックすると、常に次の 2 行がログに返されます。
Order detected as undefined
Reverse passed a parameter to reOrderJSON
これがどのように起こっているのかわかりません。初めてorder
として渡されるべきではありません。"reverse"
ここで何が欠けていますか?
depos
違いがある場合は、配列オブジェクトです。