Tagging the 1.5rc1 release.
[jquery.git] / src / queue.js
index e636ffb..9e3e2fb 100644 (file)
@@ -1,41 +1,60 @@
+(function( jQuery ) {
+
 jQuery.extend({
        queue: function( elem, type, data ) {
-               if ( !elem ) { return; }
+               if ( !elem ) {
+                       return;
+               }
 
                type = (type || "fx") + "queue";
-               var q = jQuery.data( elem, type );
+               var q = jQuery._data( elem, type );
 
                // Speed up dequeue by getting out quickly if this is just a lookup
-               if ( !data ) { return q || []; }
+               if ( !data ) {
+                       return q || [];
+               }
 
                if ( !q || jQuery.isArray(data) ) {
-                       q = jQuery.data( elem, type, jQuery.makeArray(data) );
+                       q = jQuery._data( elem, type, jQuery.makeArray(data) );
+
                } else {
                        q.push( data );
                }
+
                return q;
        },
 
-       dequeue: function( elem, type ){
+       dequeue: function( elem, type ) {
                type = type || "fx";
 
-               var queue = jQuery.queue( elem, type ), fn = queue.shift();
+               var queue = jQuery.queue( elem, type ),
+                       fn = queue.shift();
 
                // If the fx queue is dequeued, always remove the progress sentinel
-               if ( fn === "inprogress" ) { fn = queue.shift(); }
+               if ( fn === "inprogress" ) {
+                       fn = queue.shift();
+               }
 
                if ( fn ) {
                        // Add a progress sentinel to prevent the fx queue from being
                        // automatically dequeued
-                       if ( type == "fx" ) { queue.unshift("inprogress"); }
+                       if ( type === "fx" ) {
+                               queue.unshift("inprogress");
+                       }
 
-                       fn.call(elem, function() { jQuery.dequeue(elem, type); });
+                       fn.call(elem, function() {
+                               jQuery.dequeue(elem, type);
+                       });
+               }
+
+               if ( !queue.length ) {
+                       jQuery.removeData( elem, type + "queue", true );
                }
        }
 });
 
 jQuery.fn.extend({
-       queue: function(type, data){
+       queue: function( type, data ) {
                if ( typeof type !== "string" ) {
                        data = type;
                        type = "fx";
@@ -44,16 +63,16 @@ jQuery.fn.extend({
                if ( data === undefined ) {
                        return jQuery.queue( this[0], type );
                }
-               return this.each(function(i, elem){
+               return this.each(function( i ) {
                        var queue = jQuery.queue( this, type, data );
 
-                       if ( type == "fx" && queue[0] !== "inprogress" ) {
+                       if ( type === "fx" && queue[0] !== "inprogress" ) {
                                jQuery.dequeue( this, type );
                        }
                });
        },
-       dequeue: function(type){
-               return this.each(function(){
+       dequeue: function( type ) {
+               return this.each(function() {
                        jQuery.dequeue( this, type );
                });
        },
@@ -72,7 +91,9 @@ jQuery.fn.extend({
                });
        },
 
-       clearQueue: function(type){
+       clearQueue: function( type ) {
                return this.queue( type || "fx", [] );
        }
 });
+
+})( jQuery );