gpt4 book ai didi

jquery - 如何在 jQuery Tablesorter 中创建特定的排序函数?

转载 作者:行者123 更新时间:2023-12-01 00:07:16 26 4
gpt4 key购买 nike

我正在使用这个很棒的 jQuery Tablesorter 版本:http://mottie.github.com/tablesorter/docs/index.html

一切工作正常,但现在我遇到了这个问题:在我的表格中,我有一列包含篮球运动员的位置。因此,我希望该列按如下逻辑排序:PG-SG-SF-PF-C。

我尝试创建这个自定义排序函数 - 看看我的脚本,第 2 列:

$(document).ready(function() { 

$(".stats").tablesorter({
sortInitialOrder: 'desc',
sortRestart: true,
// Enable use of the characterEquivalents reference
sortLocaleCompare: false,
// if false, upper case sorts BEFORE lower case
ignoreCase: true,
headers: {
0: {
sortInitialOrder: 'asc'
},
1: {
sortInitialOrder: 'asc'
},
2: {
textSorter: function(a, b){
var positions = {
"PG": 0,
"SG": 10,
"SF": 20,
"PF": 30,
"C": 40
};
return ((positions[a] < positions[b]) ? -1 : ((positions[a] > positions[b]) ? 1 : 0));
},
sortInitialOrder: 'asc'
}
}
}
);

});

但是,该列仍然像普通文本字符串 (C-PF-PG-SF-SG) 一样按字母顺序排序。

我哪里出错了?我对 Javascript 的了解不是特别强,所以它可能是在排序函数中的某个地方。谢谢。

最佳答案

我通过添加自己的解析器来解决这个问题,就像这个问题所示:Sorting Image and hyperlink columns in a table using JQuery Sorter plugin

我将复制我的脚本,使其按我希望的方式工作,希望它对某人有所帮助:

$(document).ready(function() { 

$.tablesorter.addParser({
// set a unique id
id: 'positions',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format your data for normalization
return s.toLowerCase()
.replace("pg", "d")
.replace("sg", "h")
.replace("sf", "m")
.replace("pf", "r")
.replace("c", "v");
},
// set type, either numeric or text
type: 'text'
});

$(".stats").tablesorter({
sortInitialOrder: 'desc',
sortRestart: true,
headers: {
0: {
sortInitialOrder: 'asc'
},
1: {
sortInitialOrder: 'asc'
},
2: {
sorter: 'positions',
sortInitialOrder: 'asc'
}
}
}
);

});

关于jquery - 如何在 jQuery Tablesorter 中创建特定的排序函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com