Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите разобраться с сложным циклом (https://javascript.ru/forum/misc/23731-pomogite-razobratsya-s-slozhnym-ciklom.html)

czp 03.12.2011 20:13

помогите разобраться с сложным циклом
 
вот что отправляю в цикл
drag.droptargets( object1 = { target : function(i){ a = document.getElementById ('tro').getElementsByTagName('div')[i]; return a },
                        hover : function(droptarget) { droptarget.style.border = '10px solid #0ff'; },
				        hoveroff : function(droptarget) { droptarget.style.border = 'none'; }, 
                        drop : function() { alert('2'); }  
					  });

сам цикл
if (arguments) {
	    var i = j = t = 0;

        while (arguments[i]) { 
          config.droptargets.push(a = {})
	   
	      while(arguments[i].target(j)) { 
	        config.droptargets[t].target = arguments[i].target(j);
		    config.droptargets[t].hover = arguments[i].hover;
		    config.droptargets[t].hoveroff = arguments[i].hoveroff;
		    config.droptargets[t].drop = arguments[i].drop; 
            j++; t++;
		  }
	      i++; t++;
	    };
	  }

суть такова, получается цикл берет первый обьект и с его свойства target прогоняет елемы, потом второй обьект, все элемы по очереди ложим в массив
--
как бы оно то получается но кривова то и с багами, работает только есле я 3 раза кликну на елем(все это работает при клике) сначала выдает ошибки а на 3й раз нормально срабатывает
где у меня там ошибки??уже прилично времени увалил на цикл, помогите

ksa 03.12.2011 20:42

czp, смысла будет больше если ты расскажешь что за задачу ты пытаешся решить... ;)

czp 03.12.2011 21:14

да то долго рассказывать легче так что бы подсказали,
загнал во второй цикл config.droptargets.push(a = {}), заработало почти как надо
теперь не считывает сами обьекты arguments[i] подскажите с ошибкой

czp 04.12.2011 17:16

Цитата:

Сообщение от nasqad (Сообщение 140597)
да тут долго разбираться, лучше все с нуля переделайте

виноват, осознал:)

вопрос свой решил уже, прошу тему закрыть


Часовой пояс GMT +3, время: 00:36.