focus() не берет курсор в поле

Я пытаюсь заставить курсор вернуться к своему предыдущему вводу, когда значение неверно. Вот более простая версия скрипта, который я использую:

$('input:first-child').blur(function(e){
    console.log('here');
  $('input:first-child').focus();
});

Это работает, когда я щелкаю по другому элементу, чтобы сфокусироваться, но не когда я щелкаю по телу или другому элементу div. Зачем? У меня есть дело jsfiddle: http://jsfiddle.net/leyou/Zabn4/37/

Изменить: я тестировал на Chrome/Win7, но с Firefox это кажется хуже. Это полностью игнорирует фокус ()

2 ответа

Решение

Это происходит потому, что размытие еще не завершено. Сделайте это с небольшим таймаутом, и это будет работать:

$('input:first-child').blur(function(e){
    setTimeout(function () { $('input:first-child').focus(); }, 20);
});

Попробуй это

$('input:first-child').blur(function(e){
    console.log('here');
    setTimeout(function() { $('input:first-child').focus(); }, 500);
});
Другие вопросы по тегам