JQuery将此传递给函数

时间:2012-02-10 15:21:28

标签: javascript jquery function hover this

我需要将this发送到capIn()和capOut()函数,以便我可以定位正确.slide的子div。如何将this传递给函数。 this将是徘徊的。

$(".slide").hover(function(){capIn();capOut();});

3 个答案:

答案 0 :(得分:11)

查看函数名capIncapOut,它们是2种不同的行为。我相信您在mouseentermouseleave事件中有两种不同的行为。 hover方法可以采用2种方法,一种用于mouseenter,另一种用于mouseleave。你可以试试这个

$(".slide").hover(capIn, capOut);

您可以在thiscapIn使用capOut.slide它会指向您所在的function capIn(){ var $childrens = $(this).children(); } function capOut(){ var $childrens = $(this).children(); } 元素。

{{1}}

答案 1 :(得分:10)

$(".slide").hover(function(){
    capIn.apply(this);
    capOut.apply(this);
});

见这里:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

<强>更新

如果capIn用于mouseentercapOut用于mouseleave,则:

$(".slide").hover(function(){
    capIn.apply(this);
}, function(){
    capOut.apply(this);
});

ShankarSangoli的解决方案更简洁,但如果除this之外还需要传递任何参数,则可以使用capIn.apply(this, arguments)

答案 2 :(得分:0)

这对我有用:

function capOut(jq) {
    alert(jq.hasClass('slide'))
}

$(".slide").hover(function () {
    capIn(this),
    capOut($(this)) //to pass a jQuery object wrapping 'this'
});