1

Mootools 具有以下语法,用于将唯一事件处理程序委托给使用不同事件类型的给定父元素的子元素。jQuery 中是否存在类似的语法?我试图避免为要附加元素的每个元素编写单独的案例。

$('myElement').addEvents({
    // monitor an element for mouseover
    mouseover: fn,
    // but only monitor child links for clicks
    'click:relay(a)': fn2
});

我对传递的第二个项目更感兴趣,它基本上说“如果我单击#myElement 内的锚点,则调用此函数。” 我可以轻松地扩展此列表,使用我想要的任何事件向其他孩子添加更多独特的事件处理程序。

4

1 回答 1

4

我能想到的最接近的是on()

$('#myElement').on('mouseover', 'a', function(){
        // do something when an a element within the '#myElement' element is moused-over
    });

还有delegate(),它实现了很多相同,但使用的语法略有不同:

$('#myElement').delegate('a', 'mouseover', function(){
    // do something when the 'a' within the '#myElement' element is moused-over
});

JS 小提琴演示

参考:

于 2012-06-21T18:50:12.460 回答