| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > переменные в setTimeout |
| Автор: jone31 25.9.2012, 11:27 |
| в общем ситуация такая: js скрипт выводит сообщение пользователю, и потом что бы убрать его через setTimeout() вызывается функция которая уберет сообщение... в функцию передается id сообщения... id хранится в переменной js. и например если показано три сообщения, то соответственно будет три setTimeout() с разными id что бы скрыть их через 5 сек... но в setTimeout() выполняется всегда с последним переданным ид... т.е. setTimeout выполнится три раза с последним ID... а не по одному разу с каждым ID как сделать что бы setTimeout() брал значение ид на момент его определения, а не на момент когда он должен выполниться... |
| Автор: bars80080 25.9.2012, 14:50 |
| делать три разных id. сохранять их в массиве или в атрибуте элемента. в чём проблема? |
| Автор: Aliance 25.9.2012, 15:45 | ||
Как думаешь, что выведет данный скрипт?
Чтобы понять ответ на мой вопрос (а заодно и на свой), http://shamansir.github.com/JavaScript-Garden/#function.closures про замыкания. |
| Автор: skyboy 26.9.2012, 09:24 |
конечно, нет. зато ответ на его вопрос помог бы тебе обойтись без массива сейчас и таких граблей в будущем. но — как хочешь. |