jQuery метод .change()
Определение и применение
jQuery метод .change() привязывает JavaScript обработчик событий change (изменение элемента),
или запускает это событие на выбранный элемент. Метод используется с элементами HTML формы.
Событие "change" срабатывает, когда значение элемента формы меняется (элементы
<input>,
<textarea>
и элементы
<select>). Обращаю Ваше внимание, что для таких элементов как радио-кнопки, флаговые кнопки и элементы раскрывающегося
списка, событие "change" вызывается немедленно после того как пользователь сделает выбор, а для элементов
с текстовым содержимым откладывается до того момента пока элемент управления не потеряет фокус (например, такие
элементы как
<input>
с текстовым типом type = "text", или
<textarea>).
Если значение элемента изменяется с использованием JavaScript, например с использованием jQuery метода .val(), то событие "change" не вызывается.
jQuery синтаксис:
Синтаксис 1.0:
$( selector ).change() // метод используется без параметров
$( selector ).change( handler )handler - Function( Event eventObject )
Синтаксис 1.4.3:
$( selector ).change( eventData, handler )eventData - Anything
handler - Function( Event eventObject )
Обращаю Ваше внимание, что метод .change(), используемый вместе с функцией, переданной в качестве параметра (handler) является, короткой записью метода .on(), а без параметра является короткой записью метода .trigger():
$( selector ).on( "change", handler )
$( selector ).trigger( "change" )
Добавлен в версии jQuery
1.0 (синтаксис обновлен в версии 1.4.3)Значения параметров
| Параметр | Описание |
|---|---|
| eventData | Объект, содержащий данные, которые будут переданы в обработчик событий. |
| handler |
Функция, которая будет выполнена каждый раз, когда событие срабатывает. Функция в качестве параметра может
принимать объект Event.
|
Пример старого кода
Пример использования jQuery метода .select() (без параметров и с функцией)
Нажмите , затем выполните действие из пояснения. Измените JavaScript и запустите пример ещё раз. В редакторе используется jQuery 4.0.0.
index.html
<button>Клик</button><br /><br />
1<input type="radio" name="smth" /> 2<input type="radio" name="smth" /> <br />
<br />
<select>
<option>1</option>
<option>2</option>
<option>3</option></select
><br />
<br />
1<input type="checkbox" />2<input type="checkbox" /><br /><br />
<input value="Измени меня" /><br /><br />
<textarea>Измени меня</textarea>
<p></p>
main.js
$(document).ready(function () {
$('button').click(function () {
$('textarea').change()
})
$(this).change(function () {
$('p').text('Что-то изменилось').css('display', 'block').fadeOut(750)
})
})
Нажмите , чтобы запустить пример.
В этом примере с использованием jQuery метода .change() мы при нажатии на элемент
<button>
(кнопка) вызываем событие "change" на элементе
<textarea>. Вместо этого элемента можно было использовать любой другой элемент в этом примере.
Обратите внимание, что $( this ) ссылается на тот элемент с которым в настоящее время взаимодействует
пользователь и при срабатывании события "change" на этом элементе выполняется функция, которая запускает
выполнение цепочки следующих методов jQuery:
-
С помощью метода
.css()
делает элемент
<p>блочным. Это необходимо для того, чтобы отобразить этот элемент после первого вызова, так как, используемый метод .fadeOut() по завершению эффекта добавляет элементу значение свойстваdisplayсо значениемnone(элемент не отображается в документе). - С помощью метода .text() добавляем текстовое содержимое.
- С помощью метода .fadeOut() плавно изменяем прозрачность для элемента (из видимого состояния в скрытое) за 750 миллисекунд (0,75 секунды).