2012-02-17 1 views
4

Я пытаюсь создать метод .on(), используя event-map. Я хочу изменить это: $("ul").on("click", "li", function() {...}); на что-то вроде этого:Синтаксис для использования селектора в формате .on() event-map?

$("ul").on({ 
    click: function() {...}, 
    mouseenter: function() {...}, 
    mouseleave: function() {...} 
}); 

Где поставить селектор «Ли» в событиях-карте?

+6

Просто посмотрите на API, что делает его очень ясно: http://api.jquery.com/on/ –

ответ

10

Вы просто положить его в качестве второго аргумента, как обычно:

$("ul").on (
    { 
    click: function() { ... }, 
    mouseenter: function() { ... }, 
    mouseleave: function() { ... } 
    }, 
    'li' 
); 

From the docs:

.он (события-карта [селектор] [данные])

events-map Карта, в которой строковые ключи представляют одно или несколько событий с пространственным разделением объектов типов и необязательных пространств имен, а значения - esent функцию обработчика, которая будет называться для события (ов).

selector Селекторная строка для фильтрации потомков выбранных элементов, которая будет вызывать обработчик. Если селектор имеет значение null или опущен, обработчик всегда вызывается, когда достигает выбранного элемента.

данные Данные, передаваемые обработчику в event.data при возникновении события.

Параметры, заключенные в [], являются необязательными. Итак, если вы не передадите селектор, события привязаны к элементам в объекте jQuery, в данном случае все ul -элементы на странице. Если, однако, предусмотрен селектор, то элементы в объектах jQuery обрабатывают делегирование событий для набора элементов, соответствующих селектору. I. Когда событие возникает на элементе, соответствующем селектору, который является потомком элемента в объекте jQuery, этот обработчик события будет вызван после того, как событие запустится до родителя. Обратите внимание, что это означает, что если распространение события отменяется до того, как оно достигнет родителя, обработчик события не будет вызван.

+0

Thx, очень полезно объяснение. Вид вас, чтобы не торопиться. В качестве бонуса я теперь понимаю синтаксис docs :). – mtl

3

После событий-карта:

$("ul").on ({ 
    click: function() { ... }, 
    mouseenter: function() { ... }, 
    mouseleave: function() { ... } 
}, "li"); 

Пример:http://jsfiddle.net/pPPW4/

Пер с docs:

.on (события-карте [, селектор] [, данные ])

2

После событий-карты:

$("ul").on ({ 
    click: function() { ... }, 
    mouseenter: function() { ... }, 
    mouseleave: function() { ... } 
}, 'li'); 

Из documentation:

.на (события карта [селектор] [данные])

 Смежные вопросы

  • Нет связанных вопросов^_^