Poniżej przedstawiono fiddle.Wywołanie metody obiektowej Javascript za pomocą funkcji SetInterval()
Próbuję utworzyć obiekt, który wykorzystuje moment.js odliczania (plugin, że wolę się za pomocą Data())
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);
}
I następnie utworzyć instancję odliczania tak:
var countdown = new Countdown("January 1, 2014 00:00:00");
Jednak funkcja działa tylko raz. Jakieś pomysły? Czy zamiast tego powinienem używać funkcji setTimeout()?
spróbuj 'this.updateCountdown' w swoim wywołaniu' setInte rval'. – fbynite
które nie wydaje się odwoływać do obiektu (zgłasza błąd "Nie można wywołać metody" diff "o niezdefiniowanym kodzie): http://jsfiddle.net/zCFr5/2/ – dougmacklin
Musisz zrobić coś takiego: http: // jsfiddle .net/zCFr5/3/ – fbynite