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

передать событие
function reverse(event, ui){
            //alert("reverse");
            $(".drag").draggable({
                revert:true,
                stop: function( event, ui ) {
                    $(".drag").draggable({revert:false})
                }
            });
        }
 
        $(function() {
            var id;     
            var carType;  
 
            var save_event;   //пробовал сохранить :)
            var save_ui;
 
            $(".drag").draggable({
                cursor: "move",
                drag: function(event, ui) { }
            });
            $(".drop").droppable({
                start: function(event, ui) { },
                hoverClass: "red",
                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(event, ui)
                    }
                    else
                    {
                        $(this).css("background","green");
                        $.ajax({
                            type: "POST",
                            url: "${createLink(controller: 'ajaxActions', action: 'checkRoute')}/?carType=" + carType,
                            success: function (response, event, ui) {
                                //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");
                                    reverse(event, ui)
                                }
                            }
                        });
                    }
                }
            });
        });


при первом вызове функции reverse она отрабатывает как надо
if(list.length > 0){
                        reverse(event, ui)
                    }

а вот внутри ajax событие теряется, видимо. Можно ли туда как-то передать то событие. Фишка в чем: я перемещаю объект. и в пункте назначения делаю ajax запрос, в зависимости от него, у меня либо выполняется функция возврата объекта в исходное место, либо нет. а чтобы вернуть, нужно событие откуда начали перетаскивать. (может, конечно, что-то недопонимаю. реализую функцию drag&drop с реверсом)
Ответить с цитированием