Метод on - добавление функции-обработчика событий к элементу

Метод on позволяет добавить обработчик событий к элементу. Чтобы удалить обработчик можно воспользоваться методом off, чтобы событие сработало только один раз, а затем обработчик удалил сам себя - воспользуйтесь методом one. Элементы, к которым мы привязываем обрабочик должны существовать во время вызова on.

Синтаксис

Так мы добавляем обработчик событий к элементу, в качестве первого параметра в виде строки передается одно или несколько событий разделенных пробелами, вторым параметром передаем допольнительный фильтрующий селектор потомков внутри элемента, третьим - дополнительные данные, которые передаются в обработчик в свойстве event.data при срабатывании события. Второй и третий парметры необязательны. Четвертым передаем функцию-обработчик, в которую передается объект события и необязательные дополнительные параметры. Если вместо функции-обработчика передать false, то функция просто вернет false:

$(селектор).on(события, [селектор], [данные], функция-обработчик(объект события, [дополнительные параметры]));

Можно воспользоваться методом on по-другому, тогда в первый параметр передается объект JavaScript, где ключи - тип события, а значения - функции-обработчики, вызываемые для событий:

$(селектор).on({'тип события': handler}, [селектор], [данные]);

Если мы не передаем дополнительный селектор, то событие срабатывает на элементе, к которому мы прикрепляем обработчик, в противном случае - на элементе-потомке, который который соответствует этому селектору (делегированные события). Один и тот же обработчик события может быть привязан к элементу несколько раз.

Пример

Давайте в alert, отобразим текст абзаца с #test при клике по нему, клики по другим абзацам ни к чему не приведут:

<p>text1</p> <p id="test">text2</p> <p>text3</p> $('#test').on('click', function() { alert( $(this).text() ); });

Пример

Давайте при клике на абзац выведем данные, которые мы передали в метод on. Воспользуемся функцией-обработчиком testFunc, которую мы создали:

<p>click</p> function testFunc(event) { alert(event.data.text); } $('p').on('click', {text: 'aaa'}, testFunc);

Смотрите также

  • метод off,
    который позволяет удалить обработчик событий у элемента
  • метод one,
    который позволяет событию сработать один раз, а затем автоматически удалить обработчик
  • объект event,
    который содержит информацию о событии
  • метод trigger,
    который позволяет запустить все обработчики событий, привязанные к элементу для событий заданного типа
  • JavaScript метод bind,
    который позволяет привязать контекст к функции



Чат с GPT Компилятор