2010-09-28 90 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