8

http://api.jquery.com/on/上的 jQuery 文档使用以下语法(仅将事件处理程序附加到一个元素)提到了委托事件的好处:

$('#mytable').on('click', 'tr.hoverable', function(){
    // blah
});

但是我找不到任何关于使用委托事件一次附加多个事件的正确语法的参考。以下是否有快捷方式,但将 tr.hoverable 作为委托事件?

$('#mytable tr.hoverable').on({
    mouseenter: function(){
        // blah
    },
    mouseleave: function(){
        // blah
    },
    click: function(){
        // blah
    }
});

或者这是唯一的解决方案...

$('#mytable').on('click', 'tr.hoverable', function(){
    // blah
}).on('mouseenter', 'tr.hoverable', function(){
    // blah
}).on('mouseleave', 'tr.hoverable', function(){
    // blah
});

?

4

1 回答 1

10
$('#mytable').on({
    mouseenter: function(){
        // blah
    },
    mouseleave: function(){
        // blah
    },
    click: function(){
        // blah
    }
}, '.hoverable');

根据此签名

.on( 事件映射 [, 选择器] [, 数据] )

此外,更喜欢使用单个 tagName/className/id 选择器进行委托,因为它们得到了优化

于 2012-06-12T11:35:11.723 回答