toggle: function( fn, fn2 ){
return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
this._toggle( fn, fn2 ) :
- this.animate({
- height: "toggle", width: "toggle", opacity: "toggle"
- }, fn, fn2);
+ fn ?
+ this.animate({
+ height: "toggle", width: "toggle", opacity: "toggle"
+ }, fn, fn2) :
+ this.each(function(){
+ jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
+ });
},
/**
*/
animate: function( prop, speed, easing, callback ) {
return this.queue(function(){
- var hidden = jQuery(this).is(":hidden");
+ var hidden = jQuery(this).is(":hidden"),
+ opt = jQuery.speed(speed, easing, callback),
+ self = this;
for ( var p in prop )
- if ( prop[p] == "hide" && hidden ||
- prop[p] == "show" && !hidden )
- return;
-
+ if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
+ return jQuery.isFunction(opt.complete) && opt.complete.apply(this);
+
this.curAnim = jQuery.extend({}, prop);
- var opt = jQuery.speed(speed, easing, callback);
- var self = this;
jQuery.each( prop, function(name, val){
var e = new jQuery.fx( self, opt, name );
complete: fn || !fn && easing ||
jQuery.isFunction( speed ) && speed,
duration: speed,
- easing: fn && easing || easing && easing.constructor != Function && easing || "swing"
+ easing: fn && easing || easing && easing.constructor != Function && easing || (jQuery.easing.swing ? "swing" : "linear")
};
opt.duration = (opt.duration && opt.duration.constructor == Number ?
var p = n / options.duration;
// Perform the easing function, defaults to swing
- z.now = jQuery.easing[options.easing](p, n, firstNum, (lastNum-firstNum), options.duration);
+ z.now = jQuery.easing[options.easing](p, n, firstNum, (lastNum-firstNum), options.duration);
// Perform the next step of the animation
z.a();