如何将其他参数传递给$ .fn.hover()中的处理程序?

One*_*nei 0 javascript jquery javascript-events

jQuery的悬停文档只显示了一种使用该函数的方法:

$('.myClass').hover(function () {
    console.log('on mouse over');
},
function () {
    console.log('on mouse out');
});
Run Code Online (Sandbox Code Playgroud)

但是,当您将这些更改为命名函数时,它无法正常工作,在页面加载时触发命名函数(或者只要将其粘贴到控制台中):

function onMouseOver() {
    console.log('on mouse over');
}

function onMouseOut()
    console.log('on mouse out');
}

$('.myClass').hover(onMouseOver(), onMouseOut());
Run Code Online (Sandbox Code Playgroud)

将最后一行更改为:

$('myClass').hover(onMouseOver, onMouseOut);
Run Code Online (Sandbox Code Playgroud)

按预期工作(触发事件),但不允许我将任何内容传递给命名函数.有没有办法允许我将变量传递给函数?

ant*_*rat 5

是的,您需要使用匿名函数:

$('myClass').hover(function( e ) {
    onMouseOver( param1, param2... );
}, function( e ) {
    onMouseOut( param1, param2... );
});
Run Code Online (Sandbox Code Playgroud)