При получении этой ошибки:
Uncaught Error: невозможно вызвать методы для сортировки до инициализации; попытка вызвать метод 'cancel'
это, скорее всего, означает, что вы вызываете "cancel" для элемента , отличного от того, для которого была инициализирована сортировка.
В этом случае у вас есть этот код:
$('#cancel_update_order').on('click', function() {
$(this).sortable('cancel');
});
внутри этого кода "this" относится к cancel_update_order, кнопке, а не к таблице.
Если у вас есть только один сортируемый ( который использует внешний метод updateIndex
, тогда это быстро исправляется путем обращения к таблице с инициализируемой сортировкой:
$('#cancel_update_order').on('click', function() {
$("#table tbody").sortable('cancel');
});
Если вы хотите, чтобы это было более многократно, то вам нужно сохранить копию «это», когда оно ссылается на таблицу:
updateIndex = function(e, ui) {
var sortableElement = this;
$('#cancel_update_order').on('click', function() {
$(sortableElement).sortable('cancel');
});
};