| 
	| 
	
	| 
		
	| 
			
			 
			
				20.10.2014, 17:19
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.02.2012 
						Сообщений: 196
					 
		
 |  |  
	| 
				Удаление элемента после анимации.
			 Такая проблема, после анимации нужно удалить элемент. Именно удалить, а не спрятать.
 Вот такой код:
 $("#M"+i).animate( { top: (y-25)+"px", bot: (x-25)+"px"}, 300).remove();
 Удаляет элемент сразу же, не дожидаясь конца анимации.
 
 Вот такой код:
 $("#M"+i).animate( { top: (y-25)+"px", bot: (x-25)+"px"}, 300, function() {$("#M"+i).remove();});
 Вообще ничего не удаляет.
 
 Подскажите плиз решение)
 |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 17:36
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
	
 
	| Сообщение от Siend |  
	| $("#M"+i).animate( { top: (y-25)+"px", bot: (x-25)+"px"}, 300, function() {$("#M"+i).remove();}); |  
	
 
$(this).remove()
 |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 17:40
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.02.2012 
						Сообщений: 196
					 
		
 |  |  
	| УРА! Заработало!!!) а я мучался) спасибо большое) Хотя я и не понял почему прямое обращение к элементу не дало такого же результата) |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 17:49
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.02.2012 
						Сообщений: 196
					 
		
 |  |  
	| рони, 
 Еще такой вопрос:
 
$("#M"+i).animate( { top  y-25)+"px", bot  x-25)+"px"}, 300, function() {this.remove();});
 
 код код код
 
Анимация 2.
 
Так вот если Анимацию 2 убрать, то все первая воспроизводится нормально, но как только добавляю вторую анимацию, то она сразу же начинает выполняться, опять же не дожидаясь первой. Элементы разные, и анимации вообще в разных функциях, поэтому в колбек первой анимации их не засунуть. |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 17:52
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
	
 
	| Сообщение от Siend |  
	| Хотя я и не понял почему прямое обращение к элементу не дало такого же результата) |  
	
 $("#M"+i).remove(); где взять i и какое значение будет у i когда будет вызов колбек. |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 17:54
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| 
	
 
	| Сообщение от Siend |  
	| Так вот если Анимацию 2 убрать, то все первая воспроизводится нормально, но как только добавляю вторую анимацию, то она сразу же начинает выполняться, опять же не дожидаясь первой. Элементы разные, и анимации вообще в разных функциях, поэтому в колбек первой анимации их не засунуть. |  
	
 непонял |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 18:00
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.02.2012 
						Сообщений: 196
					 
		
 |  |  
	| Вообщем я кажется запутался в свойстве queue.
 Вот первая анимация:
 
 $("#M"+i).animate( { top: (y-25)+"px", bot: (x-25)+"px"},300, function() {this.remove();});
 
 а вот что после нее происходит далее:
 
 $("#M"+i).animate( { top: (y-25)+"px" }, { queue:true, duration:300 } ).animate( { bot: (x-25)+"px" }, { queue:false, duration:300 } );
 
 Но даже если я меняю на true все равно все работает криво. Я уже понял что скрипт выполняется дальше не зависимо от анимации, и походу в этом и есть мой косяк. Я удаляю элементы потому что потом будет пересоздаваться элемент с таким же именем, и видимо он просто не успевает удалится. Вообщем думаю решение такое:
 var rdy=false;
 $("#M"+i).animate( { top: (y-25)+"px", bot: (x-25)+"px"},300, function() {this.remove(); rdy=true;});
 
 while(!rdy){}
 
 и дальше уже все остальное.
 |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 18:09
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.02.2012 
						Сообщений: 196
					 
		
 |  |  
	| рони, 
 Не помогло. Попытался сделать так:
 
rdyCurMenu = 0;
rdyFullMenu = ceMenu;
for (var i = 0; i < ceMenu; i++) {
var angle = (Math.PI * 2 / ceMenu) * i;
var x = xMenu;
var y = yMenu;
$("#M"+i).animate( { top:(y-25)+"px", bot:(x-25)+"px"},300, function() {this.remove();rdyCurMenu++});
}	
while(!rdyMenu){if(rdyCurMenu==rdyFullMenu)rdyMenu=true;}
Вообще все зависло( |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 18:14
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| this.remove(); разве работает?вроде $(this).remove()
 |  |  
	| 
		
	| 
			
			 
			
				20.10.2014, 18:17
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 04.02.2012 
						Сообщений: 196
					 
		
 |  |  
	| this.remove() почему то работает))) но мой while тупо останавливает выполнение всего, даже анимации которая вообщем то по сути не должна останавливаться( сейчас пробую другую реализацию. |  |  |  |