我剛開始使用優秀的jQuery tablesorter腳本。這可能是一個愚蠢的問題,但我不知道如何指定點擊後列排序的順序。我並不是指列是按升序還是降序排序,而是按列排序的順序。用jQuery tablesorter點擊後指定不同的排序順序
例如,如果一個人點擊第2列,我可能想按第2列,第4列,第5列進行排序。但是,如果一個人點擊第3列,我可能想按第3列排序,然後列5,然後列4.
在此先感謝您的任何建議!
--MC
我剛開始使用優秀的jQuery tablesorter腳本。這可能是一個愚蠢的問題,但我不知道如何指定點擊後列排序的順序。我並不是指列是按升序還是降序排序,而是按列排序的順序。用jQuery tablesorter點擊後指定不同的排序順序
例如,如果一個人點擊第2列,我可能想按第2列,第4列,第5列進行排序。但是,如果一個人點擊第3列,我可能想按第3列排序,然後列5,然後列4.
在此先感謝您的任何建議!
--MC
我只能猜測,你是問如何將多個列進行排序?或者你的意思是你想讓其他列自動按照第一列進行排序?
如果想要知道如何對多個列進行排序,那麼默認情況下,按住鍵鍵,然後單擊列按順序排序。您可以通過更改sortMultiSortKey
選項(demo)來更改此鍵。
如果您想根據選定的列自動對多列進行排序,我建議您添加排序鏈接/按鈕來爲您完成此操作,否則您將從用戶處選擇這些選擇。嘗試這樣的事情(demo):
HTML
<button class="sort1">Sort 1-3</button>
<button class="sort2">Sort 4-6</button>
腳本
$('table').tablesorter();
$('.sort1').click(function(){
$('table').trigger('sorton', [[ [1,0],[0,0],[2,0] ]]);
});
$('.sort2').click(function(){
$('table').trigger('sorton', [[ [3,1],[4,0],[5,0] ]]);
});
或者,你可以使用sortAppend
選項基本上將一列的排序到底各種各樣的。所以,如果你總是希望排序(如生產商)的特定列按字母順序之後,用戶排序另一列,只是初始化的tablesorter使用此選項:
$('table').tablesorter({
sortAppend: [ [3,0] ] // 4th column (zero-based index) sort appended
});
因此,如果用戶排在第二列,第四列排序添加後。基本上它就像觸發這樣的排序:[[ [1,0],[3,0] ]]
。
不幸的是,sortAppend
選項存在於原始tablesorter中,但它的代碼缺失(ref)。我在我的fork of tablesorter中修復了這個問題 - 請參閱this demo。
或者,如果您希望排序是動態的,即在sortAppend
會根據所選列的變化,現在你需要綁定到sortBegin
事件中加入排序(demo; ref):
$('table').bind('sortBegin', function(e, tbl) {
var c = tbl.config,
list = c.sortList;
// add third column sort if not the initial sort, otherwise sort second column
// (zero based index)
list.push((list[0] && list[0][0] !== 2) ? [2, 0] : [1, 0]);
});
當我有空時,我計劃在將來更容易做到這一點(see this issue)。
感謝您的建議!我想根據點擊的第一列自動對多列進行排序。這是針對葡萄酒零售商的,因此客戶可能想按葡萄酒類型進行分類(例如,初始點擊「品種」欄),但也要讓生產者(相鄰列)按字母順序排序。 – user2712408
我已經用一些替代品更新了我的答案:) – Mottie
太棒了!非常感謝你:) :) :) – user2712408