Вот fiddle.Вызов метода Javascript Object с помощью SetInterval()
Я пытаюсь создать объект обратного отсчета, который использует moment.js (плагин, который я предпочитаю по сравнению с использованием Даты())
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() вместо этого?
попробуйте 'this.updateCountdown' в своем запросе' setInte rval'. – fbynite
, который, похоже, не ссылается на объект (выдает ошибку «Невозможно вызвать метод« diff »неопределенного): http://jsfiddle.net/zCFr5/2/ – dougmacklin
Вам нужно сделать что-то вроде этого http: // jsfiddle .net/zCFr5/3/ – fbynite