У меня есть поле ввода. При определенных условиях я хочу, чтобы пользователь сосредоточился на поле ввода, когда он нажимает клавишу Tab. По сути, я имитирую функциональность окна поиска Google с автоматическим заполнением. У меня все работает нормально во всех браузерах, кроме того, с которым у меня никогда не было проблем... Firefox!?
Следующий код работает, как и ожидалось, в IE, Chrome и Safari, если вы выходите из текстового поля с помощью класса myInput, ваш фокус остается в текстовом поле. Но в Firefox, когда вы выходите из текстового поля, вы переходите к следующему текстовому полю. (Это очень упрощенная версия того, что я делаю. Если я смогу заставить это работать, я смогу заставить работать мой реальный код.)
$(document).ready(
function()
{
$(".myInput").blur
(
function()
{
$(this).focus();
$(this).select();
}
);
}
);
PS. Пожалуйста, не предлагайте исправление с помощью setTimeout(). Спасибо.
Я читал статьи, описывающие, как у jQuery есть .focus(), а у javascript есть .focus() и как они не совпадают. Я это понимаю (думаю), но до сих пор не могу понять, что я делаю не так.
ДОБАВЛЕНО... Я могу заставить его работать таким образом
$(document).ready(
function()
{
$(".myInput").blur
(
function()
{
setTimeout("$('.myInput').focus();",1);
}
);
}
);
Кажется хакерским, но я не могу понять, почему Firefox не устанавливает фокус на размытие. Так что, если у кого-то из вас есть ответ, было бы неплохо узнать.