古い tablesorter プラグインを使用しています。
私のテーブルには、並べ替え可能なコンボボックスの列があります。
ただし、値を変更すると、コンボボックスを正しく並べ替えることができません。
私はこのようなものを持っています(変更、抜粋):
function sortTable(columnId, sortOrder) {
if (columnId && sortOrder) {
// previous settings available
var columnIndex = $("#" + columnId).index();
// determine sort index
var sortIndex = -1;
if ("asc" == sortOrder) {
sortIndex = 0;
} else if ("desc" == sortOrder) {
sortIndex = 1;
}
// sort table
if (sortIndex > -1) {
$('#table1').tablesorter({
textExtraction: function(node) {
// special processing for combobox
if ($(node).find('option:selected').text() != "") {
var selected = $(node).find('option:selected').text();
return selected;
} else {
return $(node).text();
}
},
sortList: [[columnIndex, sortIndex]]
});
}
} else {
// no previous settings available
$('#table1').tablesorter({
textExtraction: function(node) {
// special processing for combobox
if ($(node).find('option:selected').text() != "") {
var selected = $(node).find('option:selected').text();
return selected;
} else {
return $(node).text();
}
}
});
}
この関数は、テーブル ヘッダーをクリックすると呼び出されます。
$("#table1 th").click(function() {
var sortInfo = determineColumnIdToSort();
var sortOrder = determineNewSortOrder();
removeTablesorter(); // removes binds to the tableSorter
sortAssignMeasuresTable(columnId, sortOrder);
});
私の問題は
、値が異なるコンボボックスがある場合、ヘッダーをクリックすると正しくソートされることです。しかし、変更してコンボボックスに別の値を選択すると、並べ替えが正しく機能しません。並べ替える必要がある場合でも、コンボボックスは同じ位置に残ります。