Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Проблема с передачей параметров в цикле. (https://javascript.ru/forum/jquery/7907-problema-s-peredachejj-parametrov-v-cikle.html)

JonnyD3 25.02.2010 15:05

Проблема с передачей параметров в цикле.
 
Здравствуйте.

Образовалась проблема и уже сутки не могу понять в чём дело:( .
Хотел реализовать простенькое выпадающее меню (под категориями) при клике. Попробовал сначала вписать параметры прям в функцию:
$(document).ready(function(){
		        $("li1").click(function(){	
				        $("Ul1").slideToggle('fast');
				        $(this).toggleClass("active");
				        return false;
			        })
	        })

Естественно всё заработало. Но, как только я попытался передавать параметры в цикле, код перестал работать.
var idName = ['#li1', '#Ul1','#li2', '#Ul2', '#li3', '#Ul3' ];
	    
	    for(var i = 0; i < 3; i++)
	    {
	        $(document).ready(function(){
		        $(idName[i*2]).click(function(){	
				        $(idName[i*2 + 1]).slideToggle('fast');
				        $(this).toggleClass("active");
				        return false;
			        })
	        })
	    }


Что самое любопытное, если указать индекс в массиве явно, не через переменную, а руками, всё работает. Но как только возвращаю 'i' всё летит к чёртовой матери. Никаких ошибках в консоли firefox нет. :help:

sysya 25.02.2010 15:18

почитайте про $().each(); и $.each();

правильнее наверна пишется:
$(document).ready(function(){//страница полностью загружена

//тут играемся кодом

});

Shaci 25.02.2010 15:18

возможно, дело в этом?
http://javascript.ru/basic/closure#p...-ispolzovaniya

JonnyD3 25.02.2010 16:18

Спасибо! В других языках таких "особенностей" не встречал:) . Ещё раз спасибо!


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