我需要将this
发送到capIn()和capOut()函数,以便我可以定位正确.slide的子div。如何将this
传递给函数。 this
将是徘徊的。
$(".slide").hover(function(){capIn();capOut();});
答案 0 :(得分:11)
查看函数名capIn
和capOut
,它们是2种不同的行为。我相信您在mouseenter
和mouseleave
事件中有两种不同的行为。 hover
方法可以采用2种方法,一种用于mouseenter
,另一种用于mouseleave
。你可以试试这个
$(".slide").hover(capIn, capOut);
您可以在this
内capIn
使用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
用于mouseenter
且capOut
用于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'
});