JQuery: когда я нажимаю div, фокус на текстовое поле - PullRequest
3 голосов
/ 15 сентября 2010
$('.my-button').click(function() {
    $(".my-textbox").focus()
});

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

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

Ответы [ 3 ]

5 голосов
/ 15 сентября 2010

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

ссылка: jQuery focus docs

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

3 голосов
/ 15 сентября 2010

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

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

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

2 голосов
/ 15 сентября 2010

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

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

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

...