28

我可以听一个 div 的所有 mrow 点击事件,使用类似的东西

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

我可以使用类似的设置来侦听div 的所有子项的所有点击事件(无需设置,每种类型的单独侦听器)?树的某些部分具有处理程序函数,而有些则没有,我希望这些请求在 div 中向上传播,直到找到具有处理程序的请求。

4

4 回答 4

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

*将绑定到所有元素的内部#mydiv

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

于 2013-05-27T13:20:38.527 回答
15

对于所有后代:

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

对于直系后代:{javascript 中所谓的子项}

$('#mydiv').on('click', '> *', function() {...});
于 2013-05-27T13:27:36.847 回答
2

我想你可以离开选择器

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

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

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

于 2013-05-27T13:23:04.567 回答
-1

参考这个http://api.jquery.com/all-selector/

尝试 :

$('#mydiv').on('click', '#mydiv *', function() {
var moo = $(this).attr('id');
    if (handlers[id]) {
        event.stopPropagation();
        handlers[id]();
}
于 2013-05-27T13:27:03.390 回答