JQuery TableSort доступ к внутреннему параметру конфигурации - PullRequest
0 голосов
/ 11 июля 2011

Я часами работаю над этим вопросом, но безуспешно, надеюсь, вам помогут!Я использую плагин tablesorter для сортировки таблиц на стороне клиента.Прежде всего, я установил порядок сортировки по умолчанию и инициализировал плагин сортировщика:

var defaultSort=[[4,1]];
$("#myTable").tablesorter({sortList:defaultSort});

, который не работает (не сортирует), пока работает:

 $("#myTable").tablesorter({sortList: [[4,1]]});

Может 'Я не вижу причины для такого поведения.

Позже я динамически добавляю столбцы с помощью getJSON.После добавления строки я должен обновить сортировщик таблиц и снова упорядочить (из-за новых строк).Для этого: прочитайте текущий «sortList» и попробуйте применить этот список:

$("#myTable").trigger("update");
sortOrder=$("#myTable")[0].config.sortList;
setTimeout('$("#myTable").trigger("sorton",['+sortOrder+']);',1);

Но это не работает.Там нет заказа.Console.info (sortOrder) возвращает 4 вместо [[4,1]].Почему?

Но весь этот код работает, если sortList жестко закодирован, например:

$("#myTable").trigger("update");
setTimeout('$("#myTable").trigger("sorton",[[[4,1]]]);',1);

Спасибо

1 Ответ

0 голосов
/ 11 июля 2011

попробуйте это:

var myTable = $("#myTable");
var sortOrder=myTable.trigger("update")[0].config.sortList;
setTimeout(function(){
    myTable.trigger("sorton",[sortOrder]);
},1);

в третьем примере вы написали

setTimeout('$("#myTable").trigger("sorton",['+sortOrder+']);',1);

У sortOrder вызывается toString (), когда вы помещаете его в эту строку. Это как минимум одна из причин, по которой он не работает.

...