ich diesen Code geschrieben habe, den Wert des Timer in einem div zu bekommen:Ausgabe mit einem String zurückkehr
var timerGenerator = (function() {
var time = {
centiSec: 0,
secondes: 0,
minutes: 0,
hours: 0
};
var container = document.createElement("div");
var timeDisplay = function() {
function smoothDisplay(value) {
return (value < 10 ? '0' : '') + value;
}
return "" + smoothDisplay(this.hours) + ":" + smoothDisplay(this.minutes) + ":" + smoothDisplay(this.secondes) + "." + smoothDisplay(this.centiSec);
};
var boundTimeDisplay = timeDisplay.bind(time);
var timeUpdate = function() {
container.innerHTML = boundTimeDisplay();
//console.log(container);
this.centiSec++;
if(this.centiSec === 100) {
this.centiSec = 0;
this.secondes++;
}
if(this.secondes === 60) {
this.secondes = 0;
this.minutes++;
}
if(this.minutes === 60) {
this.minutes = 0;
this.hours++;
}
};
var boundTimeUpdate = timeUpdate.bind(time);
window.setInterval(boundTimeUpdate,10);
console.log(container);
return container;
})();
Dieser Code funktioniert, wenn ich den var timerGenartor mit einem div verknüpfen. Aber jetzt möchte ich den var-Container in eine Zeichenfolge zurückgeben. Also änderte ich meinen Code so aus: (Ich habe gerade die Initialisierung des Behälters und diesen Wert)
var timerGenerator = (function() {
var time = {
centiSec: 0,
secondes: 0,
minutes: 0,
hours: 0
};
var container = "";
var timeDisplay = function() {
function smoothDisplay(value) {
return (value < 10 ? '0' : '') + value;
}
return "" + smoothDisplay(this.hours) + ":" + smoothDisplay(this.minutes) + ":" + smoothDisplay(this.secondes) + "." + smoothDisplay(this.centiSec);
};
var boundTimeDisplay = timeDisplay.bind(time);
var timeUpdate = function() {
container = boundTimeDisplay();
//console.log(container);
this.centiSec++;
if(this.centiSec === 100) {
this.centiSec = 0;
this.secondes++;
}
if(this.secondes === 60) {
this.secondes = 0;
this.minutes++;
}
if(this.minutes === 60) {
this.minutes = 0;
this.hours++;
}
};
var boundTimeUpdate = timeUpdate.bind(time);
window.setInterval(boundTimeUpdate,10);
console.log(container);
return container;
})();
Mit dieser Modifikation wird nichts in der Konsole zurückgegeben oder Anzeige und ich verstehe nicht, Warum. Der Kommentar "console.log" gibt mir jedoch den Timer gut. Warum zeigt die erste console.log das gute Ergebnis und nicht das zweite?
Th erstes liefert eine leere 'div' und die zweite gibt leere Zeichenfolge, da Sie in der Konsole vor der schreiben 'setInterval' wird ausgelöst. Lassen Sie mich wissen, was ist Ihr eigentliches Ziel anstelle von 'console.log' und ich werde den Code entsprechend ändern – Aruna
Die erste gibt kein leer div zurück, wenn ich ein div in einer anderen js-Datei mache und gibt ihm den Wert von timerGenerator das funktioniert. Mein eigentlicher Zweck besteht darin, die Zeichenfolge in ein span-Tag zurückzugeben, aber das span-Tag kam aus einer anderen js-Datei. – Lodec
Ich meinte die 'console.log' für das Div, das leer ist' div'. Okay, ich werde deinen Code ändern. – Aruna