【发布时间】:2013-07-16 11:34:44
【问题描述】:
首先,我一点也不精通 JavaScript。我已经将这个函数拼凑在一起,以提取一些统计数据并将它们作为 html 字符串应用到使用 JSON 的相关元素中。有时它有效,有时则无效。
AFAIK,该函数应该在执行任何操作之前等待 3 秒,然后每 2 秒重复该函数(正确吗?)。
var userGameStats = setTimeout(function () {
$.getJSON('/id/stats', function (data) {
// Pull the stats
var userWinningBets = data.winningBets,
userLosingBets = data.losingBets,
userTotalBets = data.totalBets,
userStreak = data.streak,
userBestStreak = data.bestStreak;
// Apply stats to elements
$('#stats_won span').text(userWinningBets);
$('#stats_lost span').text(userLosingBets);
$('#stats_total span').text(userTotalBets);
$('#stats_ratio span').text((userTotalBets > 0) ? ((userWinningBets / userTotalBets) * 100).toFixed(1) + '%' : "0%");
$('#stats_streakbest span').text(userBestStreak);
$('#stats_streak span').text(userStreak);
});
userGameStats();
setInterval(userGameStats, 2000);
}, 3000);
我收到此错误(在控制台中):
Uncaught TypeError: Property 'userGameStats' of object [object Object] is not a function
(anonymous function)
我该如何解决这个问题? 有没有更好、更正确的方法来格式化语法?
【问题讨论】:
-
userGameStats将是setTimeout的返回值(它是一个数字),而不是一个函数。您对setInterval的使用也不正确。每当函数(理论上)被调用时,您都会创建一个新的区间,从而在函数被调用几次后产生无数的区间(呈指数增长)。
标签: javascript function syntax