
Это очень уникальное требование, которое я хочу реализовать для повышения/понижения (сортировки строк). Я могу выполнять операции вверх/вниз с помощью jQuery, но мне потребовались сложные требования, которые я пробовал, но не смог это сделать. Как я прикрепил снимок. Если я нажму кнопку #trMain-1989, то эта строка со следующими 4 строками переместится после #trMain-1991
То же самое, если Я нажимаю кнопку вверх #trMain-1995, после чего все 5 строк (#trMain-1995, #trLang-1995, #trQuestion-1995, #trAnswer-1995 и #trAct-1995) перемещаются. до #trMain-1993
Вот мои коды, которые я пытаюсь использовать последние 3-4 дня, но безуспешно.
Код: 1
Код: Выделить всё
$(document).on('click','.fas', function(event){
var $element = this;
var row = $($element).parents("tr:first");
let index = oTable.row(row).index();
console.log(index);
if($(this).is('.up')){
row.eq(index-4).insertBefore(row.prev());
}else{
row.eq(index+4).insertAfter(row.next());
}
return false;
});
Код: Выделить всё
$(document).on('click','.fas', function(event){
if(oTable){
let tr = $(this).closest('tr');
let cls = $(tr).attr("class");
//console.log(cls);
cls = cls.split("-");
//console.log(cls[1]);
let index = oTable.row(tr).index();
let indexes = oTable.rows()[0];
let order = -1;
let buttonName = event.currentTarget.className;
if(buttonName.indexOf('down') > 0){
order = 1;
}
let data1 = oTable.row(index).data();
console.log(data1);
let base_index = indexes.indexOf(index) + order;
console.log(base_index);
let index2 = indexes[base_index];
console.log(index2);
var data2 = oTable.row(index2).data();
//console.log(data1);
oTable.row(index).data(data2);
oTable.row(index2).data(data1);
});
Подробнее здесь: https://stackoverflow.com/questions/781 ... -down-butt