Domanda

Quello che voglio è fornire feedback degli utenti sullo stato dell'operazione tramite l'etichetta del pulsante. Inizialmente il pulsante dice "salva", una volta cliccato voglio cambiare l'etichetta in "salva ..." inserisci un'altra funzione e quando la funzione ritorna cambia l'etichetta in " salvato " quindi fai una pausa di 2 secondi e imposta nuovamente l'etichetta su " save " valore.

Ecco il codice:

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";
}

Il problema è che per qualche motivo solo l'ultimo document.getElementById (" button "). object.textElement.color = " save " ;; è effettivamente visibile su tela perché la tela o il pulsante viene visualizzato solo quando esco dalla funzione myClickHandler . Qualche suggerimento?
Grazie in anticipo

È stato utile?

Soluzione

Qualcosa del genere potrebbe funzionare meglio. Sono abbastanza sicuro che setTimeout non blocchi.

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top