变量值仅在我发出警报时才有效?

时间:2017-06-23 23:10:07

标签: javascript jquery

变量g的值应该传递给百分比属性 但如果我在传递给百分比之前没有警告(g),它会将g的值视为未定义。解析值"时出现错误。 语言是js / jquery。

system

1 个答案:

答案 0 :(得分:1)

AJAX中的A代表异步。

在RefreshCounts中,启动异步调用以填充g,该调用在AJAX请求完成时调用的回调中设置。然后RefreshCounts退出。此时回调可能已经发生,也可能没有发生。

执行alert时,它会暂停处理,直到用户接受为止,从而完成AJAX调用时间(并填充g)。如果没有警报,处理会立即移至下一行,此时可能尚未设置g

要解决此问题,请尝试:

var g;     
function refreshCounts() {
    var url = 'https://graph.facebook.com/v2.8/?ids=' + postID + '&fields=' + reactions + '&access_token=' + access_token;
    $.getJSON(url, function(res){

        g = (defaultCount + res[postID].reactions_like.summary.total_count);
        $('#jq').LineProgressbar({
            percentage:g,
            radius: '3px',
            height: '20px',
            });
    });
}

$(document).ready(function(){
    setInterval(refreshCounts, refreshTime * 1000);
    refreshCounts();  
});