Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Это баг do{}while или что? (https://javascript.ru/forum/jquery/7673-ehto-bag-do%7B%7Dwhile-ili-chto.html)

regesh 14.02.2010 11:26

Это баг do{}while или что?
 
Подскажите пожалуйста почему когда я в цикле делаю .get()
to все 3 раза получаю почему то в значение переменной w = 4,
хотя должно быть 1 потом 2 потом 3. Див #footer лишь для показа присваиваемых значений.
s string 6 in my code)
ct_all=3
w=1
do{
toto='#center_' + w
$.get("include/view_function.php", { hot: w},function(data){$(toto).load(data + " .tp_offers_tbl");
$('#footer').append(w)
});
w++
}while(w<=ct_all)

Спасибо за любую помощь. А то уже голову сломал.((

Gvozd 14.02.2010 11:42

http://javascript.ru/basic/closure

regesh 14.02.2010 12:29

Цитата:

Сообщение от Gvozd (Сообщение 44747)

Спасибо конечно за помощь, но я немного не понимаю в чем ошибка.
Немогли бы вы просто обяснить что я не так сделал в этих замыканих ???

Gvozd 14.02.2010 12:37

уточняю
http://javascript.ru/basic/closure#p...-ispolzovaniya
у вас переменная toto замкнута на внешний контекст, и соответственно принимает свое последнее значение

tenshi 14.02.2010 16:49

говоря _человеческим_ языком: в функцию передаётся не значение toto, а сама переменная. соответственно во всех созданных функциях будет одно и то же значение - последнее присвоенное переменной

regesh 14.02.2010 23:16

Цитата:

Сообщение от tenshi (Сообщение 44762)
говоря _человеческим_ языком: в функцию передаётся не значение toto, а сама переменная. соответственно во всех созданных функциях будет одно и то же значение - последнее присвоенное переменной

Извените за наглость или лень) Но не могли бы вы подправить мой код так что бы он заработал.

tenshi 14.02.2010 23:31

нет

regesh 14.02.2010 23:44

Цитата:

Сообщение от tenshi (Сообщение 44843)
нет

хм...не понятно(

regesh 14.02.2010 23:53

Цитата:

Сообщение от Gvozd (Сообщение 44752)
уточняю
http://javascript.ru/basic/closure#p...-ispolzovaniya
у вас переменная toto замкнута на внешний контекст, и соответственно принимает свое последнее значение


Может вам будет не трудно иправить мой код что бы он заработал.
Думаю так я быстрей пойму как избежать подобных ошибок в будущем.

Gvozd 15.02.2010 00:00

Цитата:

Сообщение от regesh
Может вам будет не трудно иправить мой код что бы он заработал.

не трудно
именно поэтому я оставляю эту задачу вам.
код из ссылки достаточно похож на ваш код.
если вы не в состоянии разобраться с этой проблемой по готовому похожему примеру(не говоря уже об усвоении и понимании теоретической основы стоящей за ним), то в дальнейшем при столкновении с более трудными проблемами, вы также не сможете их решить. В таких условиях вы просто не сможете быть программистом.
PS советую забыть о jQuery, до тех пор пока вы не изучите хотя бы основные моменты JS. jQuery на данном этапе вашего обучения скорее вреден, чем полезен


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