X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Ffx%2Ffx.js;h=69885e8900c555303f27962f0cb38a648fd83bb9;hb=1ce8006d480ebd64350983a17be1cc2e3f043958;hp=3ad3dd5141fd7ea61ec15f1bed4fcaf78da2ed22;hpb=9ffd93d53a44ad6dd56646b2e15740a49c1b4f08;p=jquery.git diff --git a/src/fx/fx.js b/src/fx/fx.js index 3ad3dd5..69885e8 100644 --- a/src/fx/fx.js +++ b/src/fx/fx.js @@ -336,10 +336,13 @@ jQuery.fn.extend({ jQuery.each( prop, function(name, val){ var e = new jQuery.fx( self, opt, name ); if ( val.constructor == Number ) - e.custom( e.cur(), val ); + e.custom( e.cur() || 0, val ); else e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop ); }); + + // For JS strict compliance + return true; }); }, @@ -365,6 +368,16 @@ jQuery.fn.extend({ if ( this.queue[type].length == 1 ) fn.apply(this); }); + }, + + stop: function(){ + var timers = jQuery.timers; + + return this.each(function(){ + for ( var i = 0; i < timers.length; i++ ) + if ( timers[i].elem == this ) + timers.splice(i--, 1); + }); } }); @@ -421,18 +434,10 @@ jQuery.extend({ timers: [], - /* - * I originally wrote fx() as a clone of moo.fx and in the process - * of making it small in size the code became illegible to sane - * people. You've been warned. - */ - fx: function( elem, options, prop ){ - var z = this; - - // The styles - var y = elem.style; + var z = this, y = elem.style, + isprop = elem[prop] != null && y[prop] == null; // Simple function for setting a style value z.a = function(){ @@ -442,7 +447,10 @@ jQuery.extend({ if ( prop == "opacity" ) jQuery.attr(y, "opacity", z.now); // Let attr handle opacity else { - y[prop] = parseInt(z.now) + "px"; + if ( isprop ) + elem[prop] = parseInt(z.now); + else + y[prop] = parseInt(z.now) + "px"; // Set display property to block for height/width animations if ( prop == "height" || prop == "width" ) @@ -457,6 +465,7 @@ jQuery.extend({ // Get the current size z.cur = function(){ + if ( isprop ) return elem[prop]; var r = parseFloat( jQuery.curCSS(elem, prop) ); return r && r > -10000 ? r : z.max(); }; @@ -467,9 +476,13 @@ jQuery.extend({ z.now = from; z.a(); - jQuery.timers.push(function(){ + function t(){ return z.step(from, to); - }); + } + + t.elem = elem; + + jQuery.timers.push(t); if ( jQuery.timers.length == 1 ) { var timer = setInterval(function(){