2016-06-23 2 views
1

Вот jsfiddle, чтобы показать, что я говорю о:Удаление строки в rowReorder Таблица сбросов переупорядочения

https://jsfiddle.net/ChakronSA/sdwfcrmr/

Вы можете нажать и перетащить либо на или столбцы «Name», «Заказ». Для того, чтобы воссоздать этот вопрос: 1. Перетащите «Имя 4» в верхней части, так что это выше «Name 1» 2. Нажмите кнопку Удалить рядом с «Name 2»

При удалении «Имя 2», «Имя 4 "возвращается в исходное положение. Как я могу заставить его оставаться на месте? Я чувствую, что мне не хватает чего-то очевидного. Благодарю.

В частности любопытно, почему это не делать то, что я ожидал:

$(document).on("click", ".myTableDeleteRow", function() { 
    table 
    .row($(this).parents('tr')) 
    .remove() 
    .rows().every(function(rowidx) { 
    var data = this.data(); 
    data[0] = rowidx + 1; 
    this.data(data); 
    }) 
    .draw(false); 
}); 
+0

Я никогда не использовал DataTable, но им при условии его потому, что после вызова ' remove() 'вы получаете' rows() ', и это, вероятно, относится к первоначальному объявлению таблицы. Вероятно, вам нужно обновить таблицу, прежде чем делать это. –

+0

Это была моя первоначальная мысль. После удаления строк я попытался вызвать draw(), но ничего не изменил. Я думаю, что это, к сожалению, относится к тому, что делает плагин rowReorder dataTables, поэтому у меня возникли проблемы с поиском ответа. – Chakron

ответ

1

Heres исправление не используя только tableData

$(document).on("click", ".myTableDeleteRow", function() { 
    table 
    .row($(this).parents('tr')) 
    .remove() 
    .draw(false); 

    $.each($('#myTable tr td:first-child'),function(index,val){ 
    $(this).html(index+1) 
    }); 
}); 
+1

Это сработало! Спасибо. Похоже, второй вызов draw() вызывал мою проблему. – Chakron

Смежные вопросы