jQuery - 将.live()转换为.on()

pil*_*lau 6 jquery event-handling javascript-events

我如何将这个旧的jQuery代码组合到v1.7中.on()

v1.3 .live():

    $('#results tbody tr').live({
    mouseenter:
       function () { $(this).find('.popup').show(); },
    mouseleave:
       function () { $(this).find('.popup').hide(); }
    });
Run Code Online (Sandbox Code Playgroud)

v1.7 .on():

$('#results tbody').on('mouseenter', 'tr', function () {
    $(this).find('.popup').show();
});
$('#results tbody').on('mouseleave', 'tr', function () {
    $(this).find('.popup').hide();
});
Run Code Online (Sandbox Code Playgroud)

我想将两个事件处理程序都传递给一个.on()调用,但保持精彩的事件委托.on()允许我这样做.

谢谢!

TJ.*_*TJ. 10

您可以将事件映射作为第一个参数传递:

$('#results tbody').on({
    'mouseenter' : function () {
        $(this).find('.popup').show();
     },
    'mouseleave' : function () {
        $(this).find('.popup').hide();
    }
}, 'tr');
Run Code Online (Sandbox Code Playgroud)

jQuery文档:

.on(events-map [,selector] [,data]),
events-map一个映射,其中字符串键表示一个或多个空格分隔的事件类型和可选的命名空间,值表示要调用的处理函数事件).