Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2012, 16:11
Интересующийся
Отправить личное сообщение для Spamol Посмотреть профиль Найти все сообщения от Spamol
 
Регистрация: 19.03.2010
Сообщений: 27

Индивидуальные переменные в each
Итак, есть такой код:
$('.game').each(function(i){
       			 $(this).children("a").click(function(){
       			 	
					iFinish = new Date().setTime(new Date().getTime() + 120 * 1000);
					iStart = new Date();
					iDuration = iFinish - iStart;
					
					$(this).everyTime(100, function() {
						iLeftTime = iFinish - new Date(); /* время оставшиеся */
						iRightTime = new Date() - iStart; /*время прощедщие */
						var	iDays = parseInt(iLeftTime / iDms);
                		var iHours = parseInt((iLeftTime - (iDays * iDms)) / iHms);
                        var iMin = parseInt((iLeftTime - (iDays * iDms) - (iHours * iHms)) / iMms);
                        var iSec = parseInt((iLeftTime - (iDays * iDms) - (iMin * iMms) - (iHours * iHms)) / iCms);
                        
                        iPerc = (iRightTime > 0) ? iRightTime / iDuration * 100 : 0;
                        if(Math.round(iPerc) >= 101){
                        
                        }else{
                        $(this).parent().parent().children(".load").html(Math.round(iPerc) + "%");
                        }
                        
                        if(Math.round(iPerc) >= 101){
                        
                        }else{
                        $(this).parent().parent().children(".load").children(".statusBar").width(Math.round(iPerc) + "%");
                        }
                        
                        if(Math.round(iPerc) >= 101){
                        	$(this).parent().parent().children(".time").html('Загружено');
                        }else{
							$(this).parent().parent().children(".time").html(iMin+' мин. '+iSec+' сек.</b>');}
					});
					
					
				 });

				});

На странице много div с классом .game, внутри ссылка, по нажатию на ссылку идет время + бегут проценты и соответственно заполняется шкала загрузки, так вот этих контейнеров несколько, поэтому использую each, нужно чтобы одна функция обслуживала эти контейнеры и время не пересекалось, т.е. переменные куда заносится время iFinish и iStart не переназначались, если я нажму ссылку в нескольких контейнерах, сейчас у них время бежит индентично, потому что эти переменные обновляются при каждом нажатии на новые и первоначальное время сбивается, как создать эти переменные индивидуальные для каждого элемента .game например так то так
$('.game').each(function(i){
       			 $(this).children("a").click(function(){
       			 	var iFinish[i];
       			 	var iStart[i];
       			 	var iDuration[i];
					iFinish[i] = new Date().setTime(new Date().getTime() + 120 * 1000);
					iStart[i] = new Date();
					iDuration[i] = iFinish[i] - iStart[i];
					
				 });
				});

но создать такие переменные с квадратными скобками нельзя, есть какие-то еще выходы?
Ответить с цитированием