Это баг 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) Спасибо за любую помощь. А то уже голову сломал.(( |
|
Цитата:
Немогли бы вы просто обяснить что я не так сделал в этих замыканих ??? |
уточняю
http://javascript.ru/basic/closure#p...-ispolzovaniya у вас переменная toto замкнута на внешний контекст, и соответственно принимает свое последнее значение |
говоря _человеческим_ языком: в функцию передаётся не значение toto, а сама переменная. соответственно во всех созданных функциях будет одно и то же значение - последнее присвоенное переменной
|
Цитата:
|
нет
|
Цитата:
|
Цитата:
Может вам будет не трудно иправить мой код что бы он заработал. Думаю так я быстрей пойму как избежать подобных ошибок в будущем. |
Цитата:
именно поэтому я оставляю эту задачу вам. код из ссылки достаточно похож на ваш код. если вы не в состоянии разобраться с этой проблемой по готовому похожему примеру(не говоря уже об усвоении и понимании теоретической основы стоящей за ним), то в дальнейшем при столкновении с более трудными проблемами, вы также не сможете их решить. В таких условиях вы просто не сможете быть программистом. PS советую забыть о jQuery, до тех пор пока вы не изучите хотя бы основные моменты JS. jQuery на данном этапе вашего обучения скорее вреден, чем полезен |
Часовой пояс GMT +3, время: 18:36. |