У меня проблема с синхронизацией результатов функции, которую я получаю с AJAX с этой функцией.Идея заключается в том, что я отправляю запрос AJAX, затем после получения ответа открываю диалоговое окно, и после подтверждения пользователь возвращает правильное значение.Проблема в том, что моя функция (даже если я установил ajax-запрос не быть асинхронным) не ожидает ответа и возвращает значение, прежде чем перехватить действие пользователя.Вот код:
checkColisions = function(event) {
var parsedStart = Date.parse(event.start);
var parsedEnd = Date.parse(event.end);
var returnValue = true;
returnValue = $.ajax({
async: false,
url: '<?php echo url_for('lecture/ajaxCheckColisions')?>',
data: ({id: event.eid, name:event.title, start: parsedStart, end: parsedEnd}),
success: function(data) {
if(data == 'no-colisions')
{
returnValue = false; //do nothing
}
else
{
$("#dialog-colisions").dialog({
resizable: false,
open: function() {
$('#dialog-colisions').text()
$('#dialog-colisions').append('<p>Found colisions:</p>');
$('#dialog-colisions').append(data);
},
height:300,
modal: true,
buttons: {
'Continue': function(){
$(this).dialog('close');
returnValue = false;
},
'Cancel': function() {
$(this).dialog('close');
returnValue = true;
}
}
});
}
},
error: function(data) {
alert('error' +data);
}
});
return returnValue;
};
enter code here
returnValue должно быть установлено в диалоговом окне, но это не так.У тебя есть идеи?