2013-05-27 51 views
21

我可以听一个div的所有MROW点击事件,使用sometihng像听jQuery的所有儿童的所有的onclick事件

$('#mydiv').on('click', 'mrow', function() { 
    var moo = $(this).attr('id'); 
    if (handlers[id]) { 
     event.stopPropagation(); 
     handlers[id](); 
} 

我可以使用类似的设置为监听的所有点击事件全部 div的孩子(没有设置,为每种类型分开听众)?树的某些部分具有处理函数,有些则不需要,我希望这些请求在div内传播,直到找到具有处理函数的那个​​。

+0

“所有的孩子”直系后代或所有后代? –

回答

34
$('#mydiv').on('click', '*', function() { 

*将绑定到所有元素中#mydiv

演示-->http://jsfiddle.net/Vjwqz/1/

+0

如果我尝试这个,http://jsfiddle.net/Vjwqz/,它似乎什么也没有发生:/ –

+0

雅,因为#mydiv里没有#mydiv。看到我的答案;) –

+0

我明白了,谢谢你们! –

1

我想你可以离开选择

$('#mydiv').on('click', function() { 

选择类型:String一个选择字符串过滤的后代触发事件的选定元素。如果选择器为空 或省略,则该事件在到达选定的 元素时始终触发。

http://api.jquery.com/on/

+1

我一开始试过,但$(this).attr('id)总是#mydiv和event.target.id是''when例如,我点击一个nubmer,直到找到一个有效的处理程序为止,我无法传播。 –

9

对于所有后代:

$('#mydiv').on('click', '*', function() {...}); 

对于直接后裔:{什么是Java类称为儿童cript}

$('#mydiv').on('click', '> *', function() {...});