немного изменил функции. проблема теперь не в событиях(наверное), а в том, что 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();
}
}
}
});
});