[Функция] undelegate()
Раздел "Events"
Метод удаляет функцию обработчик от одного или нескольких событий, всех элементов, соответствующих определённому селектору, указанному в первом параметре метода undelegate(). При этом поиск начинается в контексте корневого элемента. Метод реализутеся как для сущеcтвующих, так и для будущих элементов.
Параметры
undelegate()
1.4.2
undelegate( selector, eventType ))
1.4.2
selector:
селектор, по которому происходит фильтрация элемента для которого будет удален обработчик события
eventType:
тип события, например "click" или "keydown, которое будет удалено данным методом
undelegate(selector,eventType,handler)
1.4.2
selector:
селектор, по которому происходит фильтрация элемента для которого будет удален обработчик события
eventType:
тип события, например "click" или "keydown, которое будет удалено данным методом
handler :
функция, выполняемая при срабатывании события
function (eventObject) { this; // элемент }
Описание
Данный метод является альтернативой методу die(), удаляющий все обработчики событий, с той оишь разницей, что принимает дополнительный параметр - селектор элемента(ов) для которого(ых) будут удалены события.
Примеры
Пример:
Пример разъясняющий различия методов live и delegate, изменив с deleagte на live всплытие собтия не будет предотвращено, а с delegate данная особенность устранена:
"jQuery"
function aClick() { $("div").show().fadeOut("slow"); } $("#bind").click(function () { $("body").delegate("#theone", "click", aClick) .find("#theone").text("Теперь Вы можете нажать!"); }); $("#unbind").click(function () { $("body").undelegate("#theone", "click", aClick) .find("#theone").text("Событие не связано с обработчиком..."); });
"HTML"
<button id="theone">Ничего не делать...</button> <button id="bind">Создать обработчик для события click</button> <button id="unbind">Удалить обработчик для события click</button> <div style="display:none;">Нажми!</div>
"CSS"
button { margin:5px; } button#theone { color:red; background:yellow; }
"Живой пример jQuery"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <link href="http://test-drupal.ru/themes/slyweb/css/jqueryiframe.css" rel="stylesheet" type="text/css"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script> <script> $(document).ready(function(){ function aClick() { $("div").show().fadeOut("slow"); } $("#bind").click(function () { $("body").delegate("#theone", "click", aClick) .find("#theone").text("Теперь Вы можете нажать!"); }); $("#unbind").click(function () { $("body").undelegate("#theone", "click", aClick) .find("#theone").text("Событие не связано с обработчиком..."); }); }); </script> </head> <body class="iframe"> <button id="theone">Ничего не делать...</button> <button id="bind">Создать обработчик для события click</button> <button id="unbind">Удалить обработчик для события click</button> <div style="display:none;">Нажми!</div> </body> </html> <style> button { margin:5px; } button#theone { color:red; background:yellow; } </style>
Пример:
Удалить все обработчики любых событий для всех элементов p
Пример:
Удалить все обработчики события click для всех элементов p
Пример:
Для того чтобы удалить орбработчик события - определенную функцию, укажите её название в третьем параметре.
Версия jQuery 1.4.2
Документ создан 2010-08-21