Это действительно поздно, я знаю, но мне действительно не нравились строки кода, необходимые для достижения этого каждый раз, когда это было необходимо, поэтому я выделил логику в функцию инициализации страницы, которая запускается только один раз.
(function(){
var keystoppedTimer = null;
var keystoppedInputs = document.getElementsByTagName('input');
for (var i = 0, l = keystoppedInputs.length; i < l; i++) {
keystoppedInputs[i].addEventListener('keydown', function(event){
clearTimeout(keystoppedTimer);
keystoppedTimer = setTimeout(function() {
event.target.dispatchEvent( new Event('keystopped') );
}, 600);
}, false);
}
}());
Добавление этого (думайте об этом как о полифилле) позволяет значительно упростить его использование.Все, что вам нужно сделать, чтобы настроить прекращение набора текста пользователем, это добавить прослушиватель событий для вашего элемента, нацеленного на 'keystopped'.
inputElement.addEventListener('keystopped', function(event){
console.log('Stopped typing');
}, false);
Я выбрал keystopped
, потому что он соответствует keydown
, keyup
и т. Д..