etooled the jQuery constructor, makes it work better for embedding (Bug #1585). Also...
[jquery.git] / src / fx.js
index 9fde6b9..67af130 100644 (file)
--- a/src/fx.js
+++ b/src/fx.js
@@ -114,6 +114,9 @@ jQuery.fn.extend({
                                                if ( parts[1] )
                                                        end = ((parts[1] == "-" ? -1 : 1) * end) + start;
 
+            // Absolutely position numbers
+            if( typeof val == "number") end = val;
+
                                                e.custom( start, end, unit );
                                        } else
                                                e.custom( start, val, "" );
@@ -126,12 +129,12 @@ jQuery.fn.extend({
        },
        
        queue: function(type, fn){
-               if ( !fn ) {
+               if ( jQuery.isFunction(type) ) {
                        fn = type;
                        type = "fx";
                }
 
-               if ( !arguments.length )
+               if ( !type || typeof type == "string" )
                        return queue( this[0], type );
 
                return this.each(function(){
@@ -146,19 +149,6 @@ jQuery.fn.extend({
                });
        },
 
-       dequeue: function(type){
-               type = type || "fx";
-
-               return this.each(function(){
-                       var q = queue(this, type);
-
-                       q.shift();
-
-                       if ( q.length )
-                               q[0].apply( this );
-               });
-       },
-
        stop: function(){
                var timers = jQuery.timers;
 
@@ -166,26 +156,36 @@ jQuery.fn.extend({
                        for ( var i = 0; i < timers.length; i++ )
                                if ( timers[i].elem == this )
                                        timers.splice(i--, 1);
-               });
+               }).dequeue();
        }
 
 });
 
-function queue( elem, type, array ) {
+var queue = function( elem, type, array ) {
        if ( !elem )
                return;
 
-       if ( !elem.queue )
-               elem.queue = {};
+       var q = jQuery.data( elem, type + "queue" );
 
-       if ( !elem.queue[type] )
-               elem.queue[type] = [];
+       if ( !q || array )
+               q = jQuery.data( elem, type + "queue", 
+                       array ? jQuery.makeArray(array) : [] );
+
+       return q;
+};
 
-       if ( array )
-               elem.queue[type] = jQuery.makeArray(array);
+jQuery.fn.dequeue = function(type){
+       type = type || "fx";
 
-       return elem.queue[type];
-}
+       return this.each(function(){
+               var q = queue(this, type);
+
+               q.shift();
+
+               if ( q.length )
+                       q[0].apply( this );
+       });
+};
 
 jQuery.extend({