Удалить ошибочный таймаут, который установлен на ноль

Тайм-аут 0 используется здесь, так что у клавиши есть время до размывания элемента управления. Это поражает меня, как отталкивающий способ достичь этого...

$(document).keypress(function(e){
 if( e.keyCode === 13){
 setTimeout(function(){
 $('input').blur();
 }, 0);
 }
});

Каков лучший способ размытия элементов управления при нажатии клавиши ввода?

3 ответа

Вам не нужно setTimeout здесь:

$(document).keypress(function(e){
 if( e.keyCode === 13){
 $('input').blur();
 }
});

Демонстрация.


Вы можете быть удивлены, узнав, что нет такой вещи, как перерыв в нуле. Минимальное значение таймаута для Chrome составляет 8 мс, а минимум Firefox - 15 мс.


Почему бы не попробовать использовать событие *****, чтобы у вас было небольшое количество времени, прежде чем пользователь выпустит ключ.

$(document).*****(function(e){
 if( e.keyCode === 13){
 $('input').blur();
 }
});

Проверить скрипт

licensed under cc by-sa 3.0 with attribution.