Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Передача параметра в JavaScript setTimeout (замыкания)
Не работает:
for (x=0; x<id.length; x++) {
setTimeout(function(){date_del(id[x])},1000);
};
Вариант 1 (не работает для объектов):
date_del = id[x];
var timer = setTimeout("date_del("+date_del+")",1000);
Вариант 2:
function getfunc(x){
return function(){
date_del(id[x]);
}
}
for (x=0; x<id.length; x++) {
setTimeout(getfunc(x),1000);
};
Вариант 3 (замыкания):
for(var x=0;x<id.length;x++){
setTimeout(function(i){
return function(){
date_del(id[i])}
}(x),1000);
}
/* Вы передаете ссылку на переменную x.
После завершения цикла она равна id.length,
а, значит, такого элемента в массиве нет */
.
Прокомментировать/Отблагодарить