SetTimeout не принимает параметр при повторном вызове
Привет всем,
Задача скрипта запуск функции до появления определенных условий.
function onemenu()
{
var onemenu = new Array ("czero", "cone","ctwo")
return onemenu
}
var array_one = onemenu()
menuup(array_one)
function menuup(menu_array)
{
for (i= flag1; i<=menu_array.length; i++)
{
anim(i)
flag1 ++
break
}
if (flag1 <= menu_array.length)
{
var set_timeout = 'menuup(' + menu_array + ')'
setTimeout(set_timeout, 1000)
}
else {
flag1 = 0
}
}
Так вот при повторном вызове SetTimout не передает список array_one. :(( Буду благодарен, если кто-нибудь мне поможет с этим разобраться. |
Вместо setTimeout(set_timeout, 1000), поставьте alert(set_timeout) и посмотрите, что выведется.
|
Ставил, в первый раз все нормально выводит все элементы списка, а во второй раз [object].
|
function onemenu()
{
var onemenu = new Array ("czero", "cone","ctwo")
return onemenu
}
var array_one = onemenu()
menuup(array_one)
function menuup(menu_array)
{
for (i= flag1; i<=menu_array.length; i++)
{
anim(i)
flag1 ++
break
}
if (flag1 <= menu_array.length)
{
setTimeout(function(){menuup(menu_array)}, 1000)
}
else {
flag1 = 0
}
}
|
Работает!!!
Если нетрудно, теперь можно объяснить в чем сакраментальная разница между setTimeout(set_timeout,1000) и setTimeout(function(){menuup(menu_array)}, 1000)? Спасибо за помощь. |
сакраментальная разница в передаче параметров:
- в первом случае ф-ии set_timeout не передается ничего, - во втором случае благодаря замыканию передается массив menu_array. P.S. Kolyaj, для интереса выполнил
setTimeout(function(){console.info(arguments)},1)
выдает то [-10], то [5]. Интересно, что передается? |
Спасибо за ответ, буду разбираться.
|
Цитата:
|
Цитата:
|
А если серьезно, я плохо представляю, что и где вы выполнили.
|
| Часовой пояс GMT +3, время: 11:30. |