Tableau de bord: fournir des informations aux utilisateurs en modifiant l’étiquette du bouton

StackOverflow https://stackoverflow.com/questions/1818494

  •  10-07-2019
  •  | 
  •  

Question

Ce que je veux, c’est informer les utilisateurs de l’état des opérations via l’étiquette du bouton. Dans un premier temps, le bouton indique "enregistrer", une fois que je clique dessus, je souhaite remplacer le libellé par "enregistrer ...". entrez une autre fonction et une fois que la fonction est renvoyée, modifiez le libellé en "enregistré". puis marquez une pause de 2 secondes et définissez à nouveau le libellé sur " enregistrer " valeur.

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

Le problème est que, pour une raison quelconque, seul le dernier document.getElementById ("bouton"). object.textElement.color = et "enregistrer"; est réellement visible sur la toile, car Les boutons ne sont rendus que lorsque je quitte la fonction myClickHandler . Un indice?
Merci d'avance

Était-ce utile?

La solution

Quelque chose comme ça pourrait fonctionner mieux. Je suis à peu près sûr que setTimeout ne bloque pas.

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top