我想使用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
。
答案 0 :(得分: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
仍然更好)。
答案 1 :(得分:1)
您可以尝试将resize添加到回调函数中,可能是在调用Resize
时动画尚未完成,因此您无法获得所需的效果。
$("#myDiv").fadeToggle("fast", function () {
Resize();
});
答案 2 :(得分:0)
也许是因为你必须等到fadeToggle功能完成,试试这个:
$("#myLink").live("click", function () {
$("#myDiv").fadeToggle('slow', function(){
Resize();
});
});