Панель инструментов: предоставление обратной связи с пользователем путем изменения метки кнопки - PullRequest
0 голосов
/ 30 ноября 2009

То, что я хочу, - это предоставить пользователю обратную связь о состоянии операции через метку кнопки. Первоначально кнопка говорит «сохранить», после нажатия я хочу изменить метку на «сохранение ...», ввести другую функцию, и как только функция вернется, измените метку на «сохраненную», затем приостановите 2 секунды и снова установите метку на начальную » сохранить "значение.

Вот код:

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

Проблема в том, что по какой-то причине только последний document.getElementById("button").object.textElement.color = "save"; фактически виден на холсте, потому что холст или кнопка отображаются только после выхода из функции myClickHandler. Есть подсказка?
Заранее спасибо

1 Ответ

0 голосов
/ 30 ноября 2009

Нечто подобное может работать лучше. Я почти уверен, что setTimeout не блокирует.

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