2015-01-09 74 views
2

我有兩個元素,我想委託點擊事件給他們的孩子。 此代碼的工作:如何將click事件委託給jQuery元素數組的子元素?

list.on('click', '> *', function (e) { 
    clickHandler($(this), e); 
}); 
listSelected.on('click', '> *', function (e) { 
    clickHandler($(this), e); 
}); 

嘗試使用jQuery元素的數組,但是這個代碼不工作:

$([list, listSelected]).on('click', '> *', function (e) { 
    clickHandler($(this), e); 
}); 
+0

列表和listSelected必須是DOM元素,而不是jQuery元素才能作爲選擇器數組傳遞 – zgr024 2015-01-09 19:18:33

+0

@Teemu - a對文檔的這種稱爲委託事件或我錯過了什麼? [http://api.jquery.com/on/](http://api.jquery.com/on/) – iGidas 2015-01-09 19:24:40

+0

@iGidas看起來我錯過了這個事實,你也可以放棄許多因素: )。 – Teemu 2015-01-09 19:31:36

回答

2

您可以使用add()

list.add(listSelected).on('click', '> *', function (e) { 
    clickHandler($(this), e); 
}); 
+0

謝謝,它工作:) – iGidas 2015-01-09 19:16:32

+0

@iGidas - 不客氣 – adeneo 2015-01-09 19:17:27

0
$('#your_list').children().each(function(){ 
    $(this).bind('click', clickHandler) ; 
}) ; 
+1

注意:你應該使用.on()而不是綁定作爲jQuery 1.7+ – zgr024 2015-01-09 19:21:51

相關問題