我有一个功能:
function test(e){
$('.movie').find('.moreInfo').removeClass('moreInfoShow');
e.parent().find('.moreInfo').addClass('moreInfoShow');
$("#movieBox").isotope('reLayout');
e.parent().find('.moreInfo').css("opacity", "0");
e.parent().find('.moreInfo').animate({opacity: 1}, 500);
}
由以下人员调用:
$("#movieBox").on('mouseover', '.moviePoster', function(event){test($(this));});
问题是我希望在页面加载时调用该函数。我需要将“this”传递给函数,但我没有运气让它工作。
这是我期望的工作:
test($(".moviePoster").first());
(所有代码都在“$(document).ready”函数中)
答案 0 :(得分:1)
改变这个:
$("#movieBox").on('mouseover', '.moviePoster', function(event){test($(this));});
到
$("#movieBox").on('mouseover', '.moviePoster', test);
然后$(this)里面的测试函数应该指向触发事件的jQuery对象。
使用“test($(this))”在回调中调用测试函数将立即执行该函数,而不是在事件被触发时。
更新
执行此操作后,您当然需要在页面加载时触发鼠标悬停事件。 请参阅Jashwant关于如何做到这一点的评论。
更新我错了。
function(event){test($(this));}
当然不会立即触发回调功能。只有在这样的情况下才会发生这种情况:
$("#movieBox").on('mouseover', '.moviePoster', test($(this)));
抱歉!
答案 1 :(得分:0)