JQuery: когда я нажимаю div, дать фокус на текстовое поле

$('.my-button').click(function() {
    $(".my-textbox").focus()
});

До Jquery 1.4 раньше это был способ вызвать фокус для текстового поля, теперь это не работает. Когда я нажимаю кнопку, я хочу вызвать фокус для текстового поля, что я подразумеваю под "фокусом", так это то, что я хочу, чтобы текстовое поле действовало так, как если бы оно было просто нажатым, чтобы пользователю не приходилось нажимать на текстовое поле.,

.focus должен сделать автоматический клик на текстовое поле, я хочу его, почему он не работает сейчас? это сломалось в Jquery 1.4. Мне просто нужно знать, как это сделать.

3 ответа

Решение

Это все еще работает. Смотрите здесь.

ссылка: jQuery Фокус документы

Как уже упоминалось, вызов 'focus' для одного элемента может вызвать 'blur' для другого - поэтому вместо этого используйте 'focusin'.

Ваш код работает нормально для меня. Однако похоже, что вы пытаетесь создать кликабельную метку для элемента ввода. Если это так, то существует существующий элемент с именем <label> это сделает работу за вас, JavaScript не требуется:

<label for="myTextBox">I'm a label, click me</label>
<input type="text" id="myTextBox" />

Пример: http://jsfiddle.net/pkk6y/

Это селекторы классов, а не идентификаторы - не уверен, что это актуально, но они по своей сути не уникальны - особенно в функции фокуса, jquery может просто отказаться - попробуйте использовать идентификаторы (и #mybutton, #mytextbox)

Обновление: страница документа jQuery указывает на проблемы с IE:

Событие фокуса не всплывает в Internet Explorer. Поэтому сценарии, которые полагаются на делегирование события с событием focus, не будут работать согласованно в разных браузерах.

Другие вопросы по тегам