В jQuery есть множество встроенных событий, на которые можно навешивать свои обработчики (например click
или change
). Помимо этого, существует возможность создавать свои события с помощью метода trigger
и подписываться на них с помощью bind
.
Например, мы пишем скрипт, который выводит на экран модальное окно. Окно закрывается одним из трёх способов — кликнув на крестике в правом верхнем углу, кликнув в любом месте страницы за пределами окна или нажав Esc. И вот мы хотим дать возможность сторонним скриптам отлавливать момент закрытия окна и навешивать на это событие свои функции.
Для этого нужно в скрипте, который отвечает за работу окна, при его закрытии вызвать:
$('#window').trigger('windowclose', ['Param 1', 'Param 2']);
Этим кодом мы создали пользовательское событие windowclose
, на которое теперь из любого места можно навесить свой обработчик:
$('#window').bind('windowclose', function(e, param1, param2) {
alert('Окно закрылось.');
});
Как видно из примера, в trigger, вторым аргументом, можно передавать свои параметры, которые будут доступны в bind.
- Вывести карту из конструктора Яндекс.Карт в jQuery UI Dialog
- ScrollToFixed — jQuery плагин для фиксации блоков при пропадании их из зоны видимости
- Включаем поддержку HTML5 атрибута placeholder для устаревших браузеров
- Как скрыть элемент при клике вне этого элемента
- Как подключить javascript файл из своего js скрипта
Комментарии
Ещё есть очень полезный метод live, с помощью которого, можно привязывать события не только к существующим элементам DOM, но и к тем, которые еще не созданы.
--
Добавлен в версии 1.3.
live устарел, используйте .on()
Добавить комментарий