jQuery метод .focus()
Определение и применение
jQuery метод .focus() привязывает JavaScript обработчик событий focus (получение
фокуса элементом), или запускает это событие на выбранный элемент.
jQuery синтаксис:
Синтаксис 1.0:
$( selector ).focus() // метод используется без параметров
$( selector ).focus( handler )handler - Function( Event eventObject )
Синтаксис 1.4.3:
$( selector ).focus( eventData, handler )eventData - Anything
handler - Function( Event eventObject )
Обращаю Ваше внимание, что метод .focus(), используемый вместе с функцией, переданной в качестве параметра (handler) является, короткой записью метода .on(), а без параметра является короткой записью метода .trigger():
$( selector ).on( "focus", handler )
$( selector ).trigger( "focus" )
Добавлен в версии jQuery
1.0 (синтаксис обновлен в версии 1.4.3)Значения параметров
| Параметр | Описание |
|---|---|
| eventData | Объект, содержащий данные, которые будут переданы в обработчик событий. |
| handler |
Функция, которая будет выполнена каждый раз, когда событие срабатывает. Функция в качестве параметра может
принимать объект Event.
|
Порядок событий в jQuery 4.0
При переходе фокуса между элементами jQuery 4.0 использует порядок браузера:
blur → focusout → focus → focusin в современных браузерах. Не рассчитывайте на прежний порядок jQuery
focusout → blur → focusin → focus. Internet Explorer 11 сохраняет особенности обработки фокуса.
Пример старого кода
Пример использования jQuery метода .focus() (без параметров и с функцией)
Нажмите , затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 4.0.0.
index.html
<button>Клик</button><br />
<input />
main.js
$(document).ready(function () {
$('button').click(function () {
$('input').focus()
})
$('input').focus(function () {
$('input').attr('placeholder', 'focus')
})
$('input').blur(function () {
$('input').attr('placeholder', 'blur')
})
})
Нажмите , чтобы запустить пример.
В этом примере с использованием jQuery метода .focus() мы при нажатии на элемент
<button>
(кнопка) вызываем событие "focus" на элементе
<input>. Самому элементу
<input>
задаем, что при срабатывании события "focus" на элементе выполнить функцию, которая с использованием метода
.attr()
добавляет атрибут
placeholder
со значением focus.
Кроме того, мы с использованием jQuery метода
.blur()
устанавливаем, что при получении фокуса элементом
<input>
вызвать функцию, которая с использованием метода
.attr()
добавляет атрибут
placeholder
со значением blur.