2011-11-28 110 views
2

我想用jQuery的fadeToggle()函数。jQuery:如何使用fadeToggle()?

我有一个隐藏的div,当我点击一个链接,然后我想打电话fadeToggle() div淡入,并在另一个点击后淡出。

线索是,我想调整窗口后点击我自己的功能(这是很好的工作)。

目前,我有这样的解决方案:

jQuery: 
$("#myLink").live("click", function() { 
    $("#myDiv").toggleClass("myDivClass"); 
    Resize(); 
}); 

Css: 
<style type="text/css"> 
#myDivclass { 
display:none; 
} 
</style> 

它完美,但我想这样做同样的事情,而不是fadeToggle()toggleClass()

的问题是,(在div已消退后出)第二次点击后,该窗口将不会调整 - 这与toggleClass调整大小,但不与fadeToggle

回答

3

你可能需要提供Resize函数作为回调到fadeToggle方法,所以它在动画完成时运行:

$("#myLink").live("click", function() { 
    $("#myDiv").fadeToggle(1000, Resize); 
}); 

请注意,如果你需要的参数传递到Resize功能你”将不得不使用匿名回调:

$("#myLink").live("click", function() { 
    $("#myDiv").fadeToggle(1000, function() { 
     Resize(); 
    }); 
}); 

在另一方面,如果你正在使用最新版本的jQuery你绝对不应该使用live。改为使用on(如果您使用的是旧版本,则delegate仍然更好)。

+0

就是这样,谢谢! –

+0

没问题,很高兴我可以帮助:) –

1

你可以尝试添加调整大小的回调函数,它可能是动画尚未完成的时间Resize被调用,所以你没有得到你想要的影响。

$("#myDiv").fadeToggle("fast", function() { 
    Resize(); 
}); 
0

也许因为你必须等到fadeToggle功能完成,试试这个:

$("#myLink").live("click", function() { 
    $("#myDiv").fadeToggle('slow', function(){ 
    Resize(); 
    }); 
});