jQuery live () не показывает текстовый курсор в Firefox - PullRequest
1 голос
/ 12 декабря 2010

Я использую функцию jQuery live(), чтобы изменить цвет границы ввода текста в форме, чтобы дать пользователям лучшее представление о том, какой элемент они вводят в данный момент. Мне проще использовать live() над bind()поскольку есть определенные случаи, когда новые входы формы вставляются на страницу динамически.

Из чтения документации jQuery для 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, с которой я столкнулся?

1 Ответ

1 голос
/ 13 декабря 2010

Эй, у меня была такая же проблема. Я преодолел проблему, добавив $ (this) .focus (); до возврата false.

$('input.highlight').live({
    focus: function() {
        $(this).parent('span').addClass('input-focus');
        $(this).focus();
        return false;
    },
    blur: function() {
        $(this).parent('span').removeClass('input-focus');
        return false;
    }
});

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...