Frage

Was ich will, ist Nutzer-Feedback über den Betriebsstatus durch Tastenbeschriftung zur Verfügung zu stellen. Zunächst wird der Knopf sagt „Speichern“, einmal klickte ich das Etikett ändern möchten „Speichern ...“ eine andere Funktion eingeben und sobald die Funktion kehrt das Etikett zu „gespeichert“ ändern dann 2 Sekunden Pause und das Etikett wieder eingestellt "Erstausbildung sparen“Wert.

Hier ist der Code:

function myClickHandler(event)
{   
    document.getElementById("button").object.textElement.color = "saving...";
    functionx ()
    document.getElementById("button").object.textElement.color = "saved";
    sleep (5000);
    document.getElementById("button").object.textElement.color = "save";
}

Das Problem ist, aus irgendeinem Grunde, dass nur der letzte document.getElementById("button").object.textElement.color = "save"; auf Leinwand tatsächlich sichtbar ist, weil die Leinwand oder Taste gerendert wird nur einmal ich verlassen myClickHandler Funktion. Jeder Hinweis?
Vielen Dank im Voraus

War es hilfreich?

Lösung

So etwas könnte besser funktionieren. Ich bin mir ziemlich sicher, dass setTimeout ist nicht blockierend.

function myClickHandler(event) {
    updateLabel("saving...");
    setTimeout("performFunctionX()", 250);
}

function performFunctionX() {
    functionx;()
    updateLabel("saved");
    setTimeout("updateLabel('save')", 5000);
}

function updateLabel(labelText) {
    document.getElementById("button").object.textElement.color = labelText;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top