Показать сообщение отдельно
  #3 (permalink)  
Старый 03.06.2009, 15:19
Аспирант
Отправить личное сообщение для WalterScott Посмотреть профиль Найти все сообщения от WalterScott
 
Регистрация: 10.05.2009
Сообщений: 57

Я первоначально так и делал. Сейчас понял, что происходило.
function confirmDelete(obj, link) {
        var msg = "Вы действительно хотите удалить словарь?";
    	var ans;
    	jQuery.post(    url, 
    			{"sydicId": sydicId}, 
    	function(resp) {
    		
			if (resp) { 
				msg = "Словарь содержит подсловари. Вы действительно хотите удалить словарь?";
			}
			ans = confirm(msg);
       	});	
    	alert(ans);  //выводит раньше чем выполнилась callback-функция
    	
    	return ans ? true : false;
}
Если убрать алерт перед return, то возврат из функции будет происходить раньше, чем появилось окно confirm. То есть функция всегда возвращала false(или undefined, что равнозначно).
alert притормаживает выполнение функции, и ajax успевает отработать.
То есть я сейчас вижу только один выход - поставить перед return таймаут с каким-то фиктивным действием, чтобы не дать функции confirmDelete завершиться, прежде чем появится окно confirm.
Ответить с цитированием