Показать сообщение отдельно
  #2 (permalink)  
Старый 30.09.2015, 18:39
Интересующийся
Отправить личное сообщение для mrkid Посмотреть профиль Найти все сообщения от mrkid
 
Регистрация: 16.08.2015
Сообщений: 18

немного изменил функции. проблема теперь не в событиях(наверное), а в том, что ajax не успевает выполниться и проверка if(reverseStatus) проходит быстрее ajax-запроса. вопрос теперь в том, как сделать "задержку" на дальнейшее выполнение скрипта или что-то типа того?

function reverse(){
            alert("reverse");
            $(".drag").draggable({
                revert:true,
                stop: function(  ) {
                    $(".drag").draggable({revert:false})
                }
            });
        }

        $(function() {
            var id;     //id заявки
            var carType;  //данные для отрисовки машины

            var save_event;
            var save_ui;
            var reverseStatus = false;

            $(".drag").draggable({
                cursor: "move",
                drag: function(event, ui) { }
            });
            $(".drop").droppable({
                start: function(event, ui) { },
                hoverClass: "red",
                //tolerance: 'fit',
                drop: function( event, ui ) {
                    save_event = event;
                    save_ui = ui;
                    id = ui.draggable.attr('id');
                    carType = $(this).attr("data-carType");
                    var list = $(this).find('img');
                    if(list.length > 0){
                        reverse();
                    }
                    else
                    {
                        $(this).css("background","green");
                        $.ajax({
                            type: "POST",
                            url: "${createLink(controller: 'ajaxActions', action: 'checkRoute')}/?carType=" + carType,
                            success: function (response) {
                                //alert("response = "+response);
                                if(response == "CONTINUE")
                                {
                                    formRouteOpen (event);
                                    loadRoutes(carType, id)
                                }
                                if(response == "ONEROUTE")
                                {
                                    $.ajax({
                                        type: "POST",
                                        url: "${createLink(controller: 'ajaxActions', action: 'changeRoute')}/" + id + "?carType=" + carType,
                                        success: function (response) {
                                            if (response == "OK") {
                                                location.reload()
                                            }
                                        }
                                    });
                                }
                                if(response == "NOROUTE")
                                {
                                    alert("NOROUTE");
                                    reverseStatus = true;
                                }
                                alert("reverseStatus1 = "+reverseStatus);
                            }
                        });
                        alert("reverseStatus3 = "+reverseStatus);
                        if(reverseStatus)
                        {
                            alert("reverseStatus2 = "+reverseStatus);
                            reverse();
                        }
                    }
                }
            });
        });
Ответить с цитированием