2010-09-28 87 views
1

我想與.myClass跨度標籤的點擊,和它的所有後代,做一些事情..選擇所有節點下降與jQuery

$('.myClass'). *<all elements below .myClass>*.click(function(){ 
//do something 
}); 

我如何選擇.myClass選擇下的所有元素?不僅是孩子,還有他們下面的每個節點。

林在IE7

回答

3

的點擊默認會bubble up to the parents,所以你只需要:

$('.myClass').click(function(){ 
    //do something 
}); 

如果你真的需要的所有元素,使用$('.myClass *'),但通常你想從這個遠離,事件冒泡效率更高,並且默認情況下發生。如果你需要的目標,看到它從使用event.target來到其實際的孩子,像這樣:

$('.myClass').click(function(e){ 
    var clickedDOMElement = e.target; 
    //do something 
}); 
0

如果你想明確地做到這一點。

$(」 MyClass的 ')找到(' * ').click(blah blah ..);

文檔:http://api.jquery.com/find/

+0

事實上,對不起,沒有這一點,你想要做什麼之間的差異 - 這不會聽的.myClass本身,僅* *孩子的單擊事件。 – Andrew 2010-09-28 10:20:06

+0

正如我在上面的答案中所說的......你幾乎想要在幾乎所有場景中都做到這一點,圖片爲$('body')。find('*')。click(.. ),它是知道有多少事件處理程序的綁定者,不是解決問題的好方法。 – 2010-09-28 10:21:27