live
live( тип, функция )
Добавлено в jQuery 1.3: привязывает обработчик к событию (например, click) для всех текущих и будущих элементов набора. Может также связывать пользовательские события.
Возможные события:
Пока что неподдерживаемые:
click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyupПока что неподдерживаемые:
blur, focus, mouseenter, mouseleave, change, submit
Поведение этого метода очень близко к методу bind, но с некоторыми отличиями:
- Когда Вы привязываете «живое» событие, оно будет привязано ко всем текущим и будущим элементам на странице (используя делегирование событий). Например, если Вы привязали «живой клик» ко всем элементам «li» на странице, а затем позже добавили еще один элемент «li», то привязанное ранее «живое» событие будет работать и для только что добавленного элемента (в отличие от bind, где события должны привязываться заново ко всем новым элементам).
- «Живые» события не передаются между элементами обычным образом, поэтому такая передача не может быть остановлена функциями stopPropagation или stopImmediatePropagation. Например, возьмем случай с двумя событиями click: одно привязываем к элементу «li», другое — к «li a». Если клик был сделан по внутренней ссылке, то ОБА события будут вызваны. Это происходит потому, что по сути
$("li").bind("click", fn);означает: «Всегда, когда осуществляется клик по элементу LI или внутри элемента LI — запускать событие». Для остановки дальнейшей обработки «живого» события функция fn должна вернуть false. - «Живые» события пока работают только при использовании в отношении селектора. Например, такая конструкция будет работать:
$("li a").live(...), а такие не будут:$("a", someElement).live(...)или$("a").parent().live(...).
.live() ведет себя подобно популярному дополнению liveQuery, но с несколькими отличиями:
- .live в данный момент поддерживает все множество событий.
- .live не поддерживает «без события» стиль вызова функции, который предоставляет liveQuery. Только обработчики событий могут привязываться с помощью .live.
- .live не имеет стадии «настройки» или «очистки» так как все события делегируются, а не привязываются непосредственно к элементам.
Для удаления всех «живых» событий используйте метод die.
Аргументы:
| тип | Строка | |
|---|---|---|
| Тип события | ||
| функция | Функция | |
Функция
function callback(eventObject) {
this; // dom element
}
|
||