русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

.undelegate( )

Возвращает: jQuery

Описание: Удаляет обработчик события для всех элементов, которые соответствуют текущему выбору, в настоящее время или в будущем, на основе определенного набора корневых элементов.

.undelegate( )

Добавлена в версию: 1.4.2

.undelegate( селектор, типСобытия )

Добавлена в версию: 1.4.2
селектор
Селектор для фильтрации элементов, которые вызывают событие.
типСобытия
Строка, содержащая один или более разделенных запятыми типов событий JavaScript, таких как "click" или "keydown," или пользовательские имена событий.

.undelegate( селектор, типСобытия, обработчик )

Добавлена в версию: 1.4.2
селектор
Селектор для фильтрации элементов, которые вызывают событие.
типСобытия
Строка, содержащая один или более разделенных запятыми типов событий JavaScript, таких как "click" или "keydown," или пользовательские имена событий.
обработчик
Функции для выполнения во время запуска события.

.undelegate( селектор, события )

Добавлена в версию: 1.4.3
селектор
Селектор, который будет использоваться для фильтрации результатов событий.
события
Карта из одного или нескольких типов событий и ранее связанных функций отвязанных от них.

.undelegate( пространствоИмен )

Добавлена в версию: 1.6
пространствоИмен
Строка, содержащая имена для развязывания всех событий.

Undelegate это способ удаления обработчиков событий, которые были связаны с использованием .delegate(). Он работает практически идентично .die() с добавлением выбора фильтра аргумента (который необходим для делегации на работу).

Примеры

Пример 1

Привязывает и отвязывает события к цветной кнопке.
function aClick() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function () {
  $("body").delegate("#theone", "click", aClick)
    .find("#theone").text("Can Click!");
});
$("#unbind").click(function () {
  $("body").undelegate("#theone", "click", aClick)
    .find("#theone").text("Does nothing...");
});
Результат выполнения кода выше:

Пример 1 - Полный код:

<!DOCTYPE html>
<html>
<head>

  <style>
button { margin:5px; }
button#theone { color:red; background:yellow; }
</style>

<script src="http://code.jquery.com/jquery-latest.js"></script>
  
  <script type="text/javascript" language="javascript">
     $(document).ready(function(){
function aClick() {
  $("div").show().fadeOut("slow");
}
$("#bind").click(function () {
  $("body").delegate("#theone", "click", aClick)
    .find("#theone").text("Can Click!");
});
$("#unbind").click(function () {
  $("body").undelegate("#theone", "click", aClick)
    .find("#theone").text("Does nothing...");
});
     });
  </script>

</head>
<body>
	<button id="theone">Does nothing...</button>
<button id="bind">Bind Click</button>
<button id="unbind">Unbind Click</button>

<div style="display:none;">Click!</div>
</body>
</html>

Пример 2

Для отмены привязки всех делегированных событий из всех параграфов, напишите:
$("p").undelegate()

Пример 3

Чтобы освободить все делегированные события нажатия из всех параграфов, используйте:
$("p").undelegate( "click" )

Пример 4

Для освобождения только одного ранее связанного обработчика, передайте функцию в качестве третьего аргумента:
var foo = function () {
// code to handle some kind of event
};

$("body").delegate("p", "click", foo); // ... now foo will be called when paragraphs are clicked ...

$("body").undelegate("p", "click", foo); // ... foo will no longer be called.

Пример 5

Для отмены привязки всех делегированных событий по их именам:
var foo = function () {
// code to handle some kind of event
};

// delegate events under the ".whatever" namespace
$
("form").delegate("click.whatever", ":button", foo);

$
("form").delegate("keypress.whatever", ":text", foo);

// unbind all events delegated under the ".whatever" namespace

$
("form").undelegate(".whatever");
Была ли эта информация полезной?
   

Комментарии