统计数据未定义

时间:2012-05-26 10:43:46

标签: javascript jquery

这段代码用参数加载php文件的内容:在线和名称并每隔0.2秒打印一次动态,整个代码都有效,但是它说“stats”没有在Internet Explorer中定义,我不知道为什么。帮助我的人

function updateStats(stat)
{
    var stat = ["online","name"];


   var stats = "";


 if (stat==undefined)
{
document.write("is undefined");
}
    var url = "online.php";

    $.each(stat, function(i, key){
       $.post(url, {stats: key}, function(data) { 
          $("#" + key).html(data);       
       });
    });
} 

setInterval('updateStats("updateStats")', 200); //  200 milliseconds = 0.2 seconds

这是更新后的代码,但仍然表示未定义统计信息

function updateStats(stat)
{


var stat = ["online","money"];


if (typeof stat == "undefined")
{
document.write("stat is undefined");
}
    var url = "online.php";

    $.each(stat, function(i, key){
       $.post(url, {stats: key}, function(data) { // stats to stat
          $("#" + key).html(data);       
       });
    });
} 


setInterval(function(){
  updateStats("updateStats");
}, 1000);


if (typeof stats == "undefined")
{
document.write("stats is undefined");
}

1 个答案:

答案 0 :(得分:2)

变化:

setInterval('updateStats("updateStats")', 200);

要:

setInterval(function(){
  updateStats("updateStats");
}, 200);

还要检查某些内容是否为undefined,而不是:

if (stat==undefined)

使用:

if (typeof stat == "undefined")

正如@Felix Kling指出的那样,你通过函数传递stat变量:

updateStats(stat)

稍后在该函数内部创建它:

var stat = ["online","name"];

这很奇怪,你应该修改你的代码来解释它。