2012-05-26 3 views
1

Этот код загружает содержимое файла php с помощью параметра: онлайн и имя и печатает их динамически каждые 0.2 секунды, весь код работает, но в нем говорится, что «статистика» не определена в 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

Это довольно капризный и бессмысленный фрагмент кода, но он работает ** в IE (7, 8 и 9). Должно быть что-то еще. – MaxArt

+1

Весь код немного хаотичен. Почему у вас есть две переменные 'stat' и' stats'? 'stat' - фактически имя параметра функции. Почему вы назначаете ему массив? –

+0

Я знаю, просто хотел определить статистику, ну, что неправильно .. собирается удалить его сейчас :) – user1417815

ответ

2

Изменение:

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

To:

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

Кроме того, чтобы проверить, если что-то undefined, вместо:

if (stat==undefined) 

Использование:

if (typeof stat == "undefined") 

Кроме того, как указывал @Felix Клинг, вы передаете stat переменную с помощью функции:

updateStats(stat) 

А также создавая его позже внутри этой функции:

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

, что странно, вам следует изменить свой код для учета этого.

+0

' setInterval (updateStats ("updateStats"), 200); 'может быть достаточно, нет? Также необходимо использовать' ==='. – Christoph

+3

Нет, аргумент 'setInterval' должен быть функцией. В любом случае, весь этот ответ isn ' t_t_t_t_c_c_c_c_c_c_c_c_c_c_t_c_c_c_c_c_c_c_c_c_c_c_c_s_c_c_c_c_c_c_c_png_0_03_0.jpg – MaxArt

+1

@Christoph: Нет, вы не можете вызвать функцию с аргументом без использования анонимной функции в 'setInterval' – Sarfraz

Смежные вопросы