使用变量一次

时间:2014-07-31 16:43:36

标签: javascript jquery

我有代码每10秒重新获取日历中的事件。但在此之前,它需要正确呈现(如果过去时间或未来时间不同的颜色),所以我使用变量nowtime来获取时间。但是现在我得到的time首先设置为始终相同,我需要获得使用setInterval函数设置的time
我可以以某种方式使用第一个变量time只有一次还是有其他解决方案?

var now = new Date();
var time = now.getTime();
setInterval(function(){
    var now = new Date();
    var time = now.getTime();
    $('#calendar').fullCalendar('refetchEvents');
},  10 * 1000);

if (eventTime < time) {
    //do something
}else {
    // do something else
}

2 个答案:

答案 0 :(得分:3)

var&amp;移除now函数在setInterval中time,它在那里重新创建那些变量。

更改time

后,为了访问新值

尝试吼叫

var now = new Date();
var time = now.getTime();
setInterval(function(){
    now = new Date();
    time = now.getTime();
    $('#calendar').fullCalendar('refetchEvents');

    if (eventTime < time) {
       //do something
     }else {
       // do something else
     }
 },  10 * 1000);

答案 1 :(得分:2)

由于您在函数内使用var关键字,因此会在函数范围内再次创建timenow。这意味着它们与函数外部的变量不同,尽管它们具有相同的名称。如果删除该关键字,则将更新全局范围中变量的值,您可以从外部访问函数设置的值。

另外,我会将if语句放在intervalled函数中。在将该时间变量设置为新值之前,JavaScript将执行if语句。

请参阅:http://jsfiddle.net/Whre/7VBcn/1/