2011-01-17 2 views
0

Я обновляю деления через вызов Ajax с заданным интервалом; который работает и обновляется правильно, в том числе, когда он доступен из другого события клика, за исключением автономного первого вызова, сделанного до того, как установлен интервал.jQuery Начальная функция Не работает

Вызов (не обновляется):

$(document).ready(function(){ 
var c = 0; 
$(".content").load('coreprocessing.php',function(){ 
    $(".content").fadeIn(400,function(){ 
     refreshIt(); 
    }); 
}); 

с комплектом обновления:

var refreshId = setInterval(refreshIt,60000); 

сразу после вызова нагрузки.

Функция:

function refreshIt(){ 
    var page = $(".navselected").attr('id'); 
    var ids = $('.content div[id]').map(function(){ 
     return this.id; 
    }).get(); 
    $.ajax({ 
     type:'POST', 
     url:page + 'functions.php', 
     data:{'idList[]':ids}, 
     dataType:'json', 
     success:function(data){ 
      $.each(data,function(element,load){ 
       var elem = $("#" + element); 
       elem.slideUp(400,function(){ 
        elem.removeClass("critical ok").addClass(load.status).html(load.number).slideDown(400); 
        if(load.status == 'critical'){ c++;} 
       }); 
      }); 
     updateInfoBar(c); 
     if(page == 'coreprocessing'){ updatePumpDataBar() } 
     c = 0; 
     } 
    }); 
} 

Когда я «тревога (с)», он всплывает, когда load.status имеет решающее значение (как предполагалось), однако он настаивает на возвращении 0 в первый раз. Будем очень благодарны любой помощи. Я играл с размахом, но, похоже, не мог понять этого.

-Джастина

+0

Вы должны отредактировать и поместить весь текст кода в блок кода для лучшего понимания. – DarkThrone

+0

Я позаботился о форматировании для вас. Это довольно легко. Просто выделите раздел кода, который вы хотите отформатировать, и нажмите кнопку «Пример кода» над областью вопроса. Это выглядит как ** '{}' **. – user113716

+0

Спасибо за редактирование кода для меня patrick dw. Последние два вопроса были отформатированы кем-то другим, и я этого не осознал. Приносим извинения за неудобства. – Justin

ответ

0

Похоже, что проблемы c быть определен в области видимости. Вам нужно будет переместить c из функции готовности документа. Я считаю, что именно поэтому он работает не в первый раз. c не определено до установленного в конце refreshIt функции c = 0; (после этого определяется).

+0

Эй, Джосия, спасибо за предложение, но оно не устраняет проблему. Если я удалю декларацию внутри вызова, она продолжает увеличиваться при обновлении страницы, и если я удалю внешнюю декларацию области, она вообще не обновится/не будет работать. – Justin

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