【发布时间】:2013-08-18 06:51:31
【问题描述】:
这是一个fiddle。
我正在尝试创建一个使用 moment.js 的倒计时对象(我更喜欢使用 Date() 的插件)
var Countdown = function(endDate) {
this.endMoment = moment(endDate);
this.updateCountdown = function() {
var currentMoment, thisDiff;
currentMoment = moment();
thisDiff = (this.endMoment).diff(currentMoment, "seconds");
if (thisDiff > 0)
console.log(thisDiff);
else {
clearInterval(this.interval);
console.log("over");
}
}
this.interval = setInterval(this.updateCountdown(), 1000);
}
然后我创建一个倒计时实例,如下所示:
var countdown = new Countdown("January 1, 2014 00:00:00");
但是,该功能似乎只运行一次。有任何想法吗?我应该改用 setTimeout() 吗?
【问题讨论】:
-
在您致电
setInterval时尝试this.updateCountdown。 -
似乎没有引用该对象(抛出错误'无法调用未定义的方法'diff'):jsfiddle.net/zCFr5/2
-
你需要这样做jsfiddle.net/zCFr5/3
-
啊,好吧,我明白了,创建一个本地变量来存储它。你想把它写成答案,这样我就可以选择你的答案了吗?
标签: javascript object methods setinterval momentjs