2012-02-17 35 views
4

我正在嘗試使用events-map創建.on()方法。我想改變這一點:$("ul").on("click", "li", function() {...});到這樣的事情:在.on()方法中使用選擇器的語法event-map?

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

我在哪兒發生的事件映射把選擇「禮」?

+6

試想一下,在API,這使得它非常清楚:http://api.jquery.com/on/ – 2012-02-17 15:09:45

回答

10

你只是把它作爲第二個參數照例:

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

From the docs

。對(事件映射[,選擇器] [,數據])

events-map一個映射,其中字符串鍵表示一個或多個空格分隔事件 類型和可選命名空間,值repr不存在針對該事件被稱爲 的處理函數。

選擇器一個選擇器字符串,用於過濾所選元素的子元素, 調用處理程序。如果選擇符爲空或省略,則處理程序總是在 到達選定元素時調用。

data當事件發生時要傳遞給event.data中的處理程序的數據。

[]中的參數是可選的。所以,如果你沒有傳遞一個選擇器,這些事件就會被綁定到jQuery對象中的元素上,在這個例子中就是頁面上的所有元素。但是,如果提供了選擇器,則jQuery對象中的元素將處理由選擇器匹配的元素集的事件委託。當一個事件發生在匹配jQuery對象中元素後裔的選擇器的元素上時,事件處理器會在事件冒泡到父對象時被調用。請注意,這意味着如果事件傳播在到達父代之前被取消,則不會調用事件處理程序。

+0

THX,非常有幫助說明。你有點花時間。作爲獎勵,我現在也瞭解docs語法:)。 – mtl 2012-02-17 15:36:20

3

的事件映射後:

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

實施例:http://jsfiddle.net/pPPW4/

docs

。對(事件映射[,選擇器] [,數據])

2

事件地圖後:

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

documentation

。在(事件地圖[,選擇] [數據])