Hier ist ein fiddle.Aufruf Javascript Objekt Methode mit SetInterval()
Ich versuche, ein Countdown-Objekt zu erstellen, die moment.js verwendet (ein Plugin, das ich es vorziehen, über Datum mit())
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);
}
ich dann eine Instanz des Countdowns erstellen wie folgt:
var countdown = new Countdown("January 1, 2014 00:00:00");
Allerdings scheint die Funktion nur einmal ausgeführt zu werden. Irgendwelche Ideen? Soll ich stattdessen setTimeout() verwenden?
versuchen Sie 'this.updateCountdown' in Ihrem Aufruf von' setInte rval'. – fbynite
das scheint nicht auf das Objekt verweisen (löst einen Fehler 'Kann Methode' diff 'undefined nicht aufrufen): http://jsfiddle.net/zCFr5/2/ – dougmacklin
Sie müssen etwas wie diese http: // jsfiddle tun .net/zCFr5/3/ – fbynite