Я использую функцию jQuery live()
, чтобы изменить цвет рамки текстовых входов формы, чтобы дать пользователям более четкое представление о том, какой элемент они набирают в настоящее время. Мне легче используйте live()
более bind()
, так как есть определенные случаи, когда новые входы формы вставляются в страницу динамически.jQuery live(), не отображающий текстовый курсор в Firefox
От чтения через jQuery documentation for live()
Я понимаю, что каждый обработчик должен возвращать false для предотвращения выполнения других обработчиков. Независимо от того, я или нет, я неправильно истолковываю то, что это на самом деле означает, вот код, который я должен добавить и удалить цвет границы из моих входов формы.
$('input.highlight').live({
focus: function() {
$(this).parent('span').addClass('input-focus');
return false;
},
blur: function() {
$(this).parent('span').removeClass('input-focus');
return false;
}
});
Это отлично работает в Chrome и Safari, за исключением Firefox мигающий текстовый курсор не появляется внутри формы ввода, когда он имеет фокус. Если я удалю return false;
, это будет показано. Может ли это быть ошибкой jQuery, с которой я столкнулся?
Это связано с тем, что путь .live пузыри вверх и что возвращает false блокирует некоторые события выше по цепочке от действия – Raynos
Так что же Chrome и Safari между мной устанавливают класс цвета границы и возвращают false или после верните, что Firefox нет? – greenie