2012-04-19 59 views
0

我弄糟了這個腳本,所以它不是那麼笨重,但它的要點是,我每秒都得到一個引用錯誤,我沒有函數getList()。我試圖將setInverval()移到上面和下面,但它幾乎沒有任何作用。它告訴我一個匿名函數正在調用getList,它沒有被定義。setInverval找不到函數?

如果它的確與衆不同,我不得不加入jQuery的衝突,使得它沒有通過MooTools干擾和我的Joomla運行1.5

jQuery(document).ready(function($) { 
function getList(){ 
i=0; 
$.getJSON(
    "./test.php", 
    function(data) 
    { 
     while(data.streams[i]){ 
      channel[i] = data.streams[i]; 
      stats[i] = data.status[i]; 
      title[i] = data.title[i]; 
      viewers[i] = data.viewers[i]; 
      i++; 
     } 
    } 
); 
} 
setInterval("getList()", 1000); 
}); 

我試圖通過控制檯調試它,但我在控制檯調試中仍然是新的,所以它沒有讓我太過分。這個程序獨立工作,沒有Joomla和jQuery的無衝突的東西,在它是在HTML文件就好了,所以我不知道什麼可能是錯誤的:/

回答

6

當使用eval樣式的setInterval()(通過傳遞字符串)時,函數必須是全局的。這是一件壞事,無論如何,所以這樣做,而不是:

setInterval(getList, 1000); 

所以你永遠不會再次傳遞一個字符串,在你需要的參數的情況下,像這樣做:

setInterval(function() { 
    getList(whatever, ...); 
    // you can have more code here and even access local variables 
}, 1000); 
+0

是啊,這是我的問題。 ^。^ Ty – 2012-04-19 05:42:57