变量 g 的值应该传递给百分比属性 但是如果我在传递百分比之前不警告(g),它会给出 g 的值未定义。给出“解析值时出错”。 语言是js/jquery。
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);
});
}
$(document).ready(function(){
setInterval(refreshCounts, refreshTime * 1000);
refreshCounts();
alert(g);
$('#jq').LineProgressbar({
percentage:g,
radius: '3px',
height: '20px',
});
});
最佳答案
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();
});
关于javascript - 变量值仅在我发出警报时才有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44731083/