Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не погу понять setTimeout
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Не погу понять setTimeout

Страниц (1): [1]
 

1. -=1100=- - 25 Ноября, 2011 - 12:50:53 - перейти к сообщению
Есть функция

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function poloj(p){  
  3.    var  col= 7 ;
  4.    var  all='';
  5.    var  ni='krug2.png';
  6.    
  7.    
  8.    for(x=1; x<=col; x++){
  9.       if(x==p){
  10.          ni='krug1.png';
  11.       }else{
  12.          ni='krug2.png';
  13.        }
  14.          
  15.       all=all+"<img src='"+ni+"' alt='' />";
  16.    }        
  17.   document.getElementById('div').innerHTML=all;
  18.   p++
  19.   setTimeout(poloj(p),3000) ;
  20.   };
  21.  
  22. poloj(1);
  23.  


setTimeout(poloj(p),3000) ;

В таком виде работает как сумасшедший. ставлю любое временное значение все равно как угорелый.

setTimeout("poloj(p)",3000) ;

Выводит ошибку "p is not defined"

setTimeout(poloj,3000) ;
Выдает случайные числа.

Вообще нужно что бы через каждых 3 сек. выдавал число на порядок выше.
2. EuGen - 25 Ноября, 2011 - 12:54:31 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. setTimeout("poloj("+p+")",3000) ;
3. -=1100=- - 25 Ноября, 2011 - 12:59:08 - перейти к сообщению
Мда... Вопросов больше не имею.
Спасибо
4. DlTA - 25 Ноября, 2011 - 14:11:33 - перейти к сообщению
EuGen пишет:
setTimeout("poloj("+p+")",3000) ;
странный вызов рекурсии

а так будет работать?
CODE (javascript):
скопировать код в буфер обмена
  1. setTimeout(function(){poloj(p);},3000) ;
5. EuGen - 25 Ноября, 2011 - 14:17:05 - перейти к сообщению
Будет. Но не везде. Старые браузеры такое не обработают.

 

Powered by ExBB FM 1.0 RC1