我希望有一个关于我开始处理某事的秒数的实时更新。所以我使用递归函数来调用自身。但是当我跑步时,似乎有一个错误,因为它没有更新。以下是我的代码:
getDiff();
function getDiff(){
var date1 = new Date("04/06/2011");
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var date2 = new Date($.now());;
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = 0;
// seconds
$("#webSeconds").html(Math.ceil(timeDiff / (1000))+" seconds");
setInterval(getDiff(),5000);
}
正如你所看到的,我正在使用setInterval,但没有任何事情发生,有什么建议吗?
答案 0 :(得分:1)
在setInterval
调用中传递函数时,请勿在函数名后使用括号。通过使用括号,您将立即调用该函数,并传递其返回值(在本例中为undefined
)。
setInterval(getDiff,5000);
// ^ no ()
这不仅限于使用setInterval
,在JavaScript中,只要您需要将函数作为参数传递或将其引用赋值给变量,它就不应包括括号。