我有这段代码从数据库中获取一些运动统计信息,并更新它们 - 我试图在检测到更改时发出警报(#scorealert div)。如果只有一个分数发生了变化,这可以正常工作。当有多个更改时,它显示错误的名称 - 它会一直显示最后一个值,而不会更改名称。Javascript计时/循环问题?
仍然是初学者与JavaScript/ajax和学习..请温柔。
谢谢!
function getscores() {
$.post("/get_live_scores.php", {e: <?=$entryid;?>}, function(celldata) {
data = jQuery.parseJSON(celldata);
$.each(data, function(i,item) {
var pname = data[i].pname;
var cell = data[i].key;
var save_val = data[i].save_val;
var wins = data[i].wins;
var shutouts = data[i].shutouts;
var goals = data[i].goals;
var assists = data[i].assists;
var ht = data[i].ht;
var gwg = data[i].gwg;
if ($('td#'+cell+'_goals').text() < goals) {
$('div#scorealert').html('Goal by '+data[i].pname);
$('div#scorealert').animate({left: '0px'});
$('div#scorealert').delay(4000).animate({left: '-300px'});
}
updatecell(pname, cell, save_val, wins, shutouts, goals, assists, ht, gwg);
});
updatetotal();
});
}
您可能希望'var data ='(注意'var')将其保留在全局名称空间之外。 –
也许检查结果是否按照正确的顺序进行?我看不出有什么不对的地方跳出来...... – nickf
另外,'pname'是唯一不*更新的字段? –