多个委托事件的jQuery语法

时间:2012-06-12 11:31:59

标签: jquery

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
});

1 个答案:

答案 0 :(得分:10)

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

As per this signature

  

.on(events-map [,selector] [,data])

此外,在优化时,首选单个tagName / className / id选择器进行委派