@yatort

Как выполнить функции по очереди?

Всем привет!

Подскажите как выполнить функции в порядке очереди?

$('.sortable-ui').sortable({
                    items: ".order_box:not(.nosort)",
                    connectWith: '.sortable-ui',
                    update: function(event, ui) {
                        var id = ui.item.parent().closest('.order_list').data('column');
                        ui.item.attr('data-column-item', id).addClass('updated'); // подставляю класс updated если изменилась колонка
                        $(this).children().each(function (index){
                            if ($(this).attr('data-position') != (index+1)) {
                                $(this).attr('data-position', (index+1)).addClass('updated'); // подставляю класс updated если изменилась позиция
                            }
                        });
                        saveNewPositions(); // это поиск классов $('.updated').each(function () {...}
                    }
                }).disableSelection();


Суть проблемы в том что выполняется вторая часть
$(this).children().each(function (index){
                            if ($(this).attr('data-position') != (index+1)) {
                                $(this).attr('data-position', (index+1)).addClass('updated'); // подставляю класс updated если изменилась позиция
                            }
                        });

и сразу за ней выполняется saveNewPositions(); не успев обработать первую

что тут можно сделать?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
@PetrPo
$(this).children().each(function (index){
	if ($(this).attr('data-position') != (index+1)) {
		$(this).attr('data-position', (index+1)).addClass('updated'); // подставляю класс updated если изменилась позиция
	}
}).promise().done(function() {
	saveNewPositions();
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы