jQuery初始函数调用不起作用

时间:2011-01-17 17:47:15

标签: jquery

我通过具有设置间隔的Ajax调用更新分区;它正常工作和更新,包括从另一个点击事件访问它时,除了在设置间隔之前进行的独立第一次调用。

通话(不更新):

$(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;
        }
    });
}

当我“警告(c)”时,当load.status严重(按预期)时会弹出,但是它坚持第一次返回0。任何帮助将不胜感激。我玩过范围,但似乎无法想出这个。

-Justin

1 个答案:

答案 0 :(得分:0)

看起来问题是c在范围内未定义。您需要将c移出文档就绪功能。我相信这就是它第一次不起作用的原因。在c函数refreshIt(此后已定义)的结尾处设置c = 0;之前,{{1}}未定义。