},
queue: function(type, fn){
- if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
+ if ( jQuery.isFunction(type) || jQuery.isArray(type) ) {
fn = type;
type = "fx";
}
return queue( this[0], type );
return this.each(function(){
- if ( fn.constructor == Array )
+ if ( jQuery.isArray(fn) )
queue(this, type, fn);
else {
queue(this, type).push( fn );
easing: fn && easing || easing && easing.constructor != Function && easing
};
- opt.duration = (opt.duration && opt.duration.constructor == Number ?
- opt.duration :
- jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds._default;
+ opt.duration = jQuery.fx.off ? 0 : typeof opt.duration == 'number' ? opt.duration :
+ jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
// Queueing
opt.old = opt.complete;
this.unit = unit || this.unit || "px";
this.now = this.start;
this.pos = this.state = 0;
- this.update();
var self = this;
function t(gotoEnd){
jQuery.timers.push(t);
- if ( jQuery.timerId == null ) {
+ if ( t() && jQuery.timerId == null ) {
jQuery.timerId = setInterval(function(){
var timers = jQuery.timers;
step: function(gotoEnd){
var t = now();
- if ( gotoEnd || t > this.options.duration + this.startTime ) {
+ if ( gotoEnd || t >= this.options.duration + this.startTime ) {
this.now = this.end;
this.pos = this.state = 1;
this.update();