jQuery:如何使用fadeToggle()?
我想使用jQuery的fadeToggle()
函数。
我有一个隐藏的div,当我点击一个链接,然后我想调用fadeToggle()
,div淡入并在另一次点击淡出后。
线索是,我想用自己的function点击后调整窗口大小(效果很好)。
目前我有这个解决方案:
jQuery: $("#myLink").live("click", function () { $("#myDiv").toggleClass("myDivClass"); Resize(); }); Css: #myDivclass { display:none; }
它工作得很好,但我想用fadeToggle()
而不是toggleClass()
做同样的事情。
问题是,在第二次单击之后(在div淡出之后),窗口没有resize – 它使用toggleClass
resize但不使用fadeToggle
resize。
您可能需要提供Resize
函数作为fadeToggle
方法的回调,因此它在动画完成时运行:
$("#myLink").live("click", function () { $("#myDiv").fadeToggle(1000, Resize); });
请注意,如果您需要将参数传递给Resize
函数,则必须使用匿名回调:
$("#myLink").live("click", function () { $("#myDiv").fadeToggle(1000, function() { Resize(); }); });
另外,如果你使用的是最新版本的jQuery,你绝对不应该使用live
。 请改用(如果您使用的是旧版本,则delegate
仍然更好)。
您可以尝试将resize添加到回调函数,可能是在调用Resize
动画尚未完成,因此您无法获得所需的效果。
$("#myDiv").fadeToggle("fast", function () { Resize(); });
也许是因为你必须等到fadeToggle函数完成,试试这个:
$("#myLink").live("click", function () { $("#myDiv").fadeToggle('slow', function(){ Resize(); }); });