Все связанные функцией live() события удаляются. Вы можете высвобождать пользовательские события, зарегистрированные функцией live. Если был указан тип события, все связанные функцией live события данного типа будут удалены. Если функция, переданная в метод live() имела второй аргумент, только этот обозначенный обработчик удаляется.
Пример:
Позволяет связать и освободить событие для красной кнопки.
"jQuery"
function aClick() {
$("div").show().fadeOut("slow");
}
$("#bind").click(function () {
$("#theone").live("click", aClick)
.text("Теперь нажми!");
});
$("#unbind").click(function () {
$("#theone").die("click", aClick)
.text("Вы не связали событие с обработчиком...");
});
"HTML"
<button id="theone">Does nothing...</button>
<button id="bind">Bind Click</button>
<button id="unbind">Unbind Click</button>
<div style="display:none;">Click!</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 () {
$("#theone").live("click", aClick)
.text("Теперь нажми!");
});
$("#unbind").click(function () {
$("#theone").die("click", aClick)
.text("Вы не связали событие с обработчиком...");
});
});
</script>
</head>
<body class="iframe">
<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>
<style>
button { margin:5px; }
button#theone { color:red; background:yellow; }
</style>
Пример:
Для освобождения всех событий связанных функцией live() из всех параграфов, укажите:
Пример:
Для освобождения всех событий click, связанных с функцией live для всех параграфов, укажите:
Пример:
Для освобождения только предшествующего обработчика, передайте функцию во второй аргумент:
"jQuery"
var foo = function () {
// ваш код
};
$("p").live("click", foo); // ... сейчас foo будет вызывана, когда происходит нажатие по параграфам ...
$("p").die("click", foo); // ... foo больше не будет вызвана.