Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Объясните косяк (https://javascript.ru/forum/jquery/31150-obyasnite-kosyak.html)

BravoTwo 28.08.2012 16:54

Объясните косяк
 
Ребят, с js пока на вы.
Решил написать, вроде бы, простой скрипт. идея состоит в том, что при нажатии на картинку экран затемняется и посередине высвечивается большой вариант картинки. Всё ок, но вот цикл, почему-то, не пашет :(
for (i = 0; i < 2; i++) {
		$('#pix')
               .children()
               .eq(i)
               .css("cursor", "pointer")
	       .click( function() {
				downloadPix(i);
				createOverlay();
				});
	}

Так вот та переменная i, которая отправляется в функцию downloadPix(i) имеет значение 2 0_о !?
Объясните, пожалуйста, в чём проблема.
Заранее, спасибо!

LittlePony 28.08.2012 17:07

в том, что на момент клика эта переменная действительно равна двум.

BravoTwo 28.08.2012 17:14

Почему так происходит? Как сделать так, чтоб i попадала внутрь функции во время цикла?

Deff 28.08.2012 17:25

<style type="text/css">
#pix > img {
 cursor:pointer;
}
</style>



<script type="text/javascript">

$("#pix > img").click( function() {
   var i = $("#pix > img").index(this);
   downloadPix(i);
   createOverlay();
});

</script>

BravoTwo 28.08.2012 17:37

Спасибо, ребят, огромное за помощь!
Какой, оказывается, быдлокод у меня получился)))

Deff 28.08.2012 22:32

BravoTwo,
Гы - поправил кавычку в строке 11 -12


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