Ecco uno fiddle.Chiama il metodo JavaScript dell'oggetto con SetInterval()
Sto cercando di creare un oggetto di conto alla rovescia che utilizza moment.js (un plugin che preferisco rispetto all'utilizzo di 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);
}
Ho quindi creare un'istanza del conto alla rovescia in questo modo:
var countdown = new Countdown("January 1, 2014 00:00:00");
Tuttavia, la funzione sembra funzionare una volta sola. Qualche idea? Dovrei usare setTimeout() invece?
provare 'this.updateCountdown' nella chiamata a' setInte rval'. – fbynite
che non sembra fare riferimento all'oggetto (genera un errore 'Impossibile chiamare il metodo' diff 'di undefined): http://jsfiddle.net/zCFr5/2/ – dougmacklin
È necessario fare qualcosa come questo http: // jsfiddle .net/zCFr5/3/ – fbynite