Понедельник, 13.05.2024, 03:10
Меню сайта
Категории раздела
JQuery плагины [59]
JQuery уроки [69]
PHP полезное [24]
PHP уроки [21]
Css [26]
JS [3]
SQL [9]
Css 3 [17]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » JQuery уроки

jquery off()

.off( события [, селектор] [, обработчик(объектСобытия)] )

Описание: Удаляет обработчик события.

.off( события [, селектор] [, обработчик(объектСобытия)] )

Добавлена в версию: 1.7
события
Один или несколько разделенных пробелами типов событий и дополнительные пространства имен, или только пространства имен, такие, как "click", "keydown.myPlugin", или ".myPlugin".
селектор
Селектор, который должен совпадать с тем, который первоначально передается на .on(), при установке обработчиков событий.
обработчик(объектСобытия)
Функция обработчика события, ранее подключенная к этому событию(ям), или специальное значение false.

.off( карта-событий [, селектор] )

Добавлена в версию: 1.7
карта-событий
Карта, где строка ключей представляет собой один или несколько разделенных пробелами типов событий и дополнительное пространство имен, а значения представляют собой обработчик функции, который ранее был прикреплены к этому событию(ям).
селектор
Селектор, который должен совпадать с тем, который первоначально передается на .on(), при установке обработчиков событий.

Метод off() удаляет обработчики событий, которые были прикреплены с помощью .on(). См. обсуждение делегированных и непосредственно связанных событий на этой странице для получения дополнительной информации. Специальные обработчики событий могут быть удалены по элементам, обеспечивая сочетание имен событий, пространства имен, селекторов, или имен функции обработчика. Когда несколько аргументов фильтрации представлены, все представленные аргументы должны соответствовать обработчику события предназначенному для удаления.

Если представлено простое название события, такое ка "click", все события этого типа (как прямые, так и делегированные) удаляются из элементов набора jQuery. При написании кода, который будет использоваться в качестве плагина, или просто при работе с большой базой кода, лучшей практикой является присоединение и удаление события с помощью имен, так что код не будет случайно удален обработчиком событий прилагаемым другим кодом. Все события всех типов в определенном пространстве имен могут быть удалены из элементов, предоставляя только имена, такие как ".myPlugin". Как минимум, или имя пространства или имя события должно быть предоставлено.

Для удаления определенных делегированных обработчиков событий, предоставьте аргумент селектор. Строка селектора должна точно совпадать с тем, что передано в .on(), при прикреплении обработчика события. Для удаления всех делегированных событий из элементов, без удаления не делегированных событий, используйте особое значение "**".

Обработчик также может быть удален, указав имя функции в аргументе обработчик. Когда jQuery присоединяет обработчик событий, он присваивает уникальный идентификатор функции обработчика. Обработчик прокси jQuery.proxy() или аналогичный механизм будут иметь тот же уникальный идентификатор (прокси-функция), так что передача прокси-обработчиков в .off может удалить больше обработчиков, чем предполагалось. В таких случаях лучше прилагать и удалять обработчики событий с использованием пространств имен.

Как и в .on(), вы можете отправить аргумент карта-событий вместо указания событий и обработчика как отдельных аргументов. Ключи являются событиями и / или именами; значения являются функциями обработчика или специальным значением false.

Пример

Добавление и удаление обработчиков событий на цветную кнопку
<!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>
</head>
<body>
 
<button id="theone">Does nothing...</button>
<button id="bind">Add Click</button>
<button id="unbind">Remove Click</button>
<div style="display:none;">Click!</div>
<script>
function aClick() {
  $
("div").show().fadeOut("slow");
}
$
("#bind").click(function () {
  $
("body").on("click", "#theone", aClick)
   
.find("#theone").text("Can Click!");
});
$
("#unbind").click(function () {
  $
("body").off("click", "#theone", aClick)
   
.find("#theone").text("Does nothing...");
});
</script>

</body>
</html>

Пример

Удаление всех обработчиков событий из всех параграфов
$("p").off()

Пример

Удаление всех делегированных обработчиков событий click из всех параграфов
$("p").off( "click", "**" )

Пример

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

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


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

Пример

Отсоединение всех делегированных обработчиков событий с помощью их имен
var validate = function () {
 
// code to validate form entries
};

// delegate events under the ".validator" namespace
$
("form").on("click.validator", "button", validate);

$
("form").on("keypress.validator", "input[type='text']", validate);

// remove event handlers in the ".validator" namespace

$
("form").off(".validator");

Категория: JQuery уроки | Добавил: ChronoW (21.11.2012)
Просмотров: 1779 | Теги: jquery off() | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: