на самом деле я не могу найти точное название для этой проблемы. Но я могу описать это так, чтобы вы знали, что мне нужно.
скажем, у меня есть кнопка # pressme, и я хотел бы привязать к ней обработчик события щелчка. Внутри обработчика функции я буду использовать ajax, чтобы получить некоторые данные с сервера, а затем проанализировать данные, чтобы обновить текст статуса div #, например: с N / A на обновленный / не обновленный. Поскольку данные постоянно меняются, я хотел бы добавить еще одну функцию, чтобы изменить статус div # на N / A.
Вот что я придумаю с этой целью:
$("button#pressme").bind("click", function(){
$.ajax{(
type:"POST",
.....
success: function (xml, status) {
.....
$("div#status").text("updated");
setTimeout(function(){$("div#status").text("N/A")}, 20000);
},
error: ....
)};
});
Кажется, это работает, как я планировал, потому что текст изменится обратно на "N / A" через 20 секунд. Однако я обнаружил, что существует проблема: если пользователь продолжает нажимать кнопку: скажем, пользователь нажимает кнопку 1-й, чтобы изменить текст на «обновленный», а затем через 18 секунд снова щелкнет, чтобы изменить текст на «не обновленный». И затем, только через 2 секунды, текст снова изменится на «N / A», потому что 1-я функция setTimeout была выполнена.
Если я хочу запомнить последний пользовательский щелчок и обновлять текст div только через 20 секунд после последнего щелчка пользователя? Как этого легко добиться?
Спасибо!