2012-03-09 45 views
0

我有这个小功能,给予,因为i is undefined错误简单的JavaScript函数:错误使用的setInterval

var i = 0 
    setInterval(function(i){ 
     var i = (i < $(".news-items li").length) ? i++ : 0 ; 
     $(".news-items li").hide(); 
     $(".news-items li:eq("+i+")").show(); 
    }, 1000) 

任何人都可以发现这个问题?

回答

2
setInterval(function(i){ 

您将在本地匿名函数中声明i作为局部变量。在函数的参数列表中删除i

var i = 0 
setInterval(function(){ 
    // Note that this will NOT update the global "i" 
    // if you want it to, remove "var" 
    // Also change "i++' to "i+1" 
    var i = (i < $(".news-items li").length) ? i+1 : 0 ; 
    $(".news-items li").hide(); 
    $(".news-items li:eq("+i+")").show(); 
}, 1000) 
+0

很好用!谢谢。 – greener 2012-03-09 19:53:16

+0

不客气:-) – 2012-03-09 19:54:23