2010-03-24 41 views
0

即时通讯使用的插件做一些事情永远10秒:jQuery的 - 复位定时器

function status_updates(){ 
    $("p").everyTime(1000,function(i) { 
     if(i==10){ 
      alert("foo"); 
      // something here 
     }else{ 
      $(this).html(i);  
     } 
    }); 
} 
status_updates(); 

,它说的东西在这里,我需要添加一些复位定时器,但我不知道怎么办。插件在这里:http://jquery.offput.ca/every/或者如果你知道其他方式,将不胜感激。

+1

不知道你所说的“复位定时器”的意思。你能详细说明吗? – bcherry 2010-03-24 21:15:09

回答

0

如果您使用i == 10进行测试,警报只会触发一次。

试试这个:

function status_updates(){ 
    $("p").everyTime(1000,function(i) { 
     if(i % 10 == 0){ 
      alert("foo"); 
      // something here 
     }else{ 
      $(this).html(i);  
     } 
    }); 
} 
status_updates(); 
+0

'i'最终可能会溢出,导致var大小限制附近出现错误。最好将'i'重置为'0'。 – Joel 2010-03-24 21:55:12

+0

嗨Joel..why?它的上限是1000。我甚至不认为这个插件允许重置和重启。 – systempuntoout 2010-03-24 22:11:48

+0

我假设'i'是区间迭代计数器。当没有计数参数调用'everyTime'时,'i'是无界的。因此,这个循环函数将被无限期地每秒调用一次。最终'我'会达到javascript的最大值(约1.8e + 300我认为)并溢出到最小值。溢出时会出现奇怪的行为。当然,在1000毫秒内需要很长时间,但你仍应该考虑它。 – Joel 2010-03-25 19:54:26