На данный вопрос уже ответили:
Есть функция которая должна вызывается по изменению текстового поля. Так как она отправляет ajax-запрос, не хотелось бы чтобы она срабатывала после каждого изменения текстового поля.
Как можно сделать так чтобы функция срабатывала только в том случае если изменения не происходили некоторое время?
Суть такова: при вводе запускаем таймер, при повторном вводе — перезапускаем. Если никто ничего долго не вводит, то таймер никто не перезапускает, и в конце концов он сработает (минимум через секунду в данном примере)
var input = document.getElementById('input');
var info = document.getElementById('info');
// Храним здесь ID таймера, чтобы отменять при вводе
var task = null;
input.addEventListener('input', function() {
info.textContent = 'Скоро сработает таймер';
// Если есть старый таймер, то отменяем его
if (task !== null) {
clearTimeout(task);
task = null;
}
// Запускаем новый таймер
task = setTimeout(someWork, 1000);
});
function someWork() {
task = null; // Таймер отработал, ID хранить больше не нужно
info.textContent = 'Введено: ' + input.value;
}
<input id="input" placeholder="Пиши в меня" />
<div id="info"></div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте у меня вопрос, можно ли сделать так, чтобы сначала послать запрос на сервер принять его, и только потом инициализоровать все...
Если набрать в поиске Яндекса "Психологические центры", будет показана карта со всеми похожими организациями, и карта уже настроена на твоё...
У меня есть массив с элементами stringМне нужно поменять буквы в словах местами, оставив порядок слов в массиве без изменений