Implemented .data() to get the entire data object. Closes #4284
[jquery.git] / src / data.js
index ac069ce..1d5fe89 100644 (file)
@@ -23,6 +23,8 @@ jQuery.extend({
                if ( data !== undefined )\r
                        jQuery.cache[ id ][ name ] = data;\r
 \r
+               if(name === true) return jQuery.cache[ id ]\r
+\r
                // Return the named cache data, or the ID for the element\r
                return name ?\r
                        jQuery.cache[ id ][ name ] :\r
@@ -92,12 +94,14 @@ jQuery.extend({
                        fn = queue[0];\r
 \r
                if( fn !== undefined )\r
-                       fn.call(elem);\r
+                       fn.call(elem, function() { jQuery(elem).dequeue(type); });\r
        }\r
 });\r
 \r
 jQuery.fn.extend({\r
        data: function( key, value ){\r
+               if(typeof key === "undefined" && this.length) return jQuery.data(this[0], true);\r
+\r
                var parts = key.split(".");\r
                parts[1] = parts[1] ? "." + parts[1] : "";\r
 \r
@@ -130,16 +134,19 @@ jQuery.fn.extend({
                if ( data === undefined )\r
                        return jQuery.queue( this[0], type );\r
 \r
-               return this.each(function(){\r
+               return this.each(function(i, elem){\r
                        var queue = jQuery.queue( this, type, data );\r
 \r
-                        if( type == "fx" && queue.length == 1 )\r
-                               queue[0].call(this);\r
+                       if( type == "fx" && queue.length == 1 )\r
+                               queue[0].call(this, function() { jQuery(elem).dequeue(type); });\r
                });\r
        },\r
        dequeue: function(type){\r
                return this.each(function(){\r
                        jQuery.dequeue( this, type );\r
                });\r
+       },\r
+       clearQueue: function(type){\r
+               return this.queue( type || "fx", [] );\r
        }\r
 });
\ No newline at end of file