为什么我不能在hover()中绕过function()?

时间:2014-07-18 08:52:14

标签: jquery hover

这是我的代码:

$(".link").hover(
    function () {
        FunctionA($(this));
    },
    function () {
        FunctionB();
    }
);

为什么我不能写:

$(".link").hover(
    FunctionA($(this)),
    FunctionB()
);

会加快代码......

1 个答案:

答案 0 :(得分:2)

$(".link").hover(
    FunctionA($(this)),
    FunctionB()
);

传递$(this)完全没用。事实上,如果你打电话(并且可以)以这种方式悬停:

$(".link").hover(FunctionA, FunctionB);

在FunctionA中,您可以访问来电者:

var FunctionA = function() {
    console.log($(this));
    /* will print $(".link") */ 
}

Example 此处。

基本上,正如你在api documentation中看到的那样,hover需要两个处理函数(handlerIn和handlerOut),两者都没有参数。