| 
	| 
	
	| 
		
	| 
			
			 
			
				11.08.2011, 17:46
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 14.10.2010 
						Сообщений: 376
					 
		
 |  |  
	| 
				Не работает функция
			 Есть функция с таким кодом 
function myf() {
	$.ajax({
		type: "POST",
		url: "config.php",
		data: {данные},
		success: function(html)	{
				$("#res").html(html);
				document.getElementById('res').style.display = 'block'; //по умолчанию #res скрыт
				setTimeout(function() {
					document.getElementById('res').style.display = 'none'; 
					clear('res');
					config('open_conf','.articleContent');
					$('#smiles').animate({height: 'show'}, 200); // эта часть не работает
				},1000);
			}
	});
return false;
}
Все функции работают, кроме метода .animate(). 
Но если перед ним поставить alert('text') , то после скрытия алерта пользователем метод .animate() выполняется. 
Подскажите, в чём проблема?			 Последний раз редактировалось (Sandr), 11.08.2011 в 17:49.
 |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 17:49
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 14.10.2010 
						Сообщений: 376
					 
		
 |  |  
	| Забыл написать...Функция clear() очищает нужный див
 А config() загружает данные, в том числе и элемент с id='smiles'
 |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 17:51
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 29.06.2011 
						Сообщений: 445
					 
		
 |  |  
	| Ну очевидно же. Все тоже самое: делать манипуляции после того, как #smiles появится на странице, по есть засунуть animate в функцию обратного вызова. |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 17:52
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 24.05.2009 
						Сообщений: 5,176
					 
		
 |  |  
	| очищать див можно так: 
$("#mydiv").empty();
 |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 18:30
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 14.10.2010 
						Сообщений: 376
					 
		
 |  |  
	| ваый,У меня так и сделано.
 config('open_conf','.articleContent'); // загружает #smiles
 $('#smiles').animate({height: 'show'}, 200); // показывает #smiles
 
 
 "по есть засунуть animate в функцию обратного вызова.", можно по подробнее?
 |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 18:31
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 14.10.2010 
						Сообщений: 376
					 
		
 |  |  
	| devote,я знаю. Просто, хочу как можно меньше использовать jQuery.
 |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 18:49
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 24.05.2009 
						Сообщений: 5,176
					 
		
 |  |  
	| 
	
 
	| Сообщение от (Sandr) |  
	| по есть засунуть animate в функцию обратного вызова.", можно по подробнее? |  
	
 листинг функции config сюда выклади |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 18:57
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 29.06.2011 
						Сообщений: 445
					 
		
 |  |  
	| 
	
 
	| Сообщение от (Sandr) |  
	| У меня так и сделано. |  
	
 У тебя не так сделано. У тебя сначала что-то происходит в config, и следом animate. Поэтому если у тебя есть что-то асинхронное в config, то animate не будет работать, потому что начинает выполняться не дожидаясь окончания работы config. |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 18:58
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 14.10.2010 
						Сообщений: 376
					 
		
 |  |  
	| devote,
 
function config(sel, div)
{
	var eDoc = document.getElementById('res_adm');
	if(sel == 'open_conf')	{
		$.ajax({
				type: "POST",
				url: "config.php",
				data: {select: "open_conf"},
				success: function(html) {
							$(div).html(html);
							if(document.getElementById('rating').innerHTML == '1')	{
								confBoolean('yes', 'rating', 'rating_yes_article', 'rating_no_article');
							}
							else {
								confBoolean('no', 'rating', 'rating_yes_article', 'rating_no_article');
							}
						}
			});
		return false;
	}
/////дальше код не относящийся к данной проблеме ///////////
}
 |  |  
	| 
		
	| 
			
			 
			
				11.08.2011, 19:01
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 24.05.2009 
						Сообщений: 5,176
					 
		
 |  |  
	| 
function config(sel, div, callback)
{
    var eDoc = document.getElementById('res_adm');
    if(sel == 'open_conf')  {
        $.ajax({
                type: "POST",
                url: "config.php",
                data: {select: "open_conf"},
                success: function(html) {
                            $(div).html(html);
                            if(document.getElementById('rating').innerHTML == '1')  {
                                confBoolean('yes', 'rating', 'rating_yes_article', 'rating_no_article');
                            }
                            else {
                                confBoolean('no', 'rating', 'rating_yes_article', 'rating_no_article');
                            }
                },
                complete: function() {
                    callback();
                }
           });
        return false;
    }
 
 
/////дальше код не относящийся к данной проблеме ///////////
 
}
config('open_conf','.articleContent', function(){
     $('#smiles').animate({height: 'show'}, 200);
});
 |  |  
 
 
 
 |  |