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

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

jquery delegate()

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

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

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

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

Делегирование является альтернативой использованию метода .live(), позволяет для каждого связанного события делегирование конкретных элементов DOM. Например, следующий код делегирования:

$("table").delegate("td", "hover", function(){
 $(this).toggleClass("hover");
});

Эквивалентен следующему коду, написанному с использованием .live():

$("table").each(function(){
 $("td", this).live("hover", function(){
 $(this).toggleClass("hover");
 });
});

Смотрите также метод .undelegate() для способа удаления обработчика события, добавленного в .delegate().

Примеры

Пример 1

Нажмите на параграф, чтобы добавить другой. Обратите внимание .delegate() привязывает событие нажатия на все параграфы - и даже на новые.
$("body").delegate("p", "click", function(){
 $(this).after("<p>Another paragraph!</p>");
 });

Пример 2

Для отображения текста каждого параграфа в окне предупреждения всякий раз, когда он нажат:
$("body").delegate("p", "click", function(){
 alert( $(this).text() );
});

Пример 3

Чтобы отменить действие по умолчанию и не допустить его распространение, верните false:
$("body").delegate("a", "click", function() { return false; })

Пример 4

Чтобы отменить только действие по умолчанию с помощью метода preventDefault.
$("body").delegate("a", "click", function(event){
 event.preventDefault();
});

Пример 5

Также можно связать пользовательские события.
 $("body").delegate("p", "myCustomEvent", function(e, myName, myValue){
 $(this).text("Hi there!");
 $("span").stop().css("opacity", 1)
 .text("myName = " + myName)
 .fadeIn(30).fadeOut(1000);
 });
 $("button").click(function () {
 $("p").trigger("myCustomEvent");
 });



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