Я пытаюсь добавить строки при прокрутке таблицы, используя модифицированную версию Tablesorter.js: http://www.pengoworks.com/workshop/jquery/tablesorter/tablesorter.htm. Она модифицируется в том смысле, что допускает складывающиеся строки.
Проблема, с которой я столкнулся, заключается в том, что при прокрутке и вызове AJAX для загрузки новых строк этим новым строкам не хватает атрибутов других строк, которые позволяют их свернуть / развернуть.
Вот некоторые проблемы с HTML для этих добавленных строк:
- кликабельное
<a>
имя класса тега не переключается с «расширенного» на «складной»
- атрибуты стиля переключаемых столбцов
<td>
не имеют значения по умолчанию "display:none"
и не переключаются на "display: table-cell"
.
Вот JS для запуска AJAX-запроса при прокрутке и для Tablesorter. Я сохранил HTML точно так же, как в демонстрационной версии на ссылке pengoworks.com, которую я упомянул выше.
$(function(){
$(document).endlessScroll({
callback: function(i) {
loaded += 10;
$.post("/more/" + loaded, function(data){
$("#table"+ " tbody").append(data);
$("#table").trigger("update");
});
}
});
$("#table").collapsible("td.collapsible", {
collapse: true
}).tablesorter({
sortList: [[1,0]],
headers: {0: {sorter: false}}
, widgets: ['zebra']
, onRenderHeader: function (){
this.wrapInner("<span></span>");
}
});
});
ОБНОВЛЕНИЕ Пожалуйста, ознакомьтесь со следующим jsfiddle, целью которого является AJAXификация таблицы складных таблиц:
http://jsfiddle.net/Lcztc/8.
Это не правда AJAX, но вы поняли идею. Кроме того, вот ссылка на код collapsible.js: http://www.pengoworks.com/workshop/jquery/tablesorter/jquery.tablesorter.collapsible.js. Согласно Амару (см. Ниже), довольно ясно, что мне нужно исправить части этого плагина, которые относятся к привязкам элементов таблицы, чтобы они распознавали добавленные элементы.
К сожалению, у вышеуказанного jsfiddle по-прежнему есть две основные проблемы: 1) потеря исходных строк теряется каждый раз, когда вы нажимаете кнопку «clickAJAX»; 2) добавленные строки никогда не складываются и не расширяются. Все еще некоторый прогресс ...