X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fdata.js;h=1d5fe8954bf2899b7a653b0be926519f3a189ba9;hb=d36d224cc52e70d837306d33a03f517ef72abc60;hp=5f2e5aee7b33f05a532b5d7940f308d9a3bcb325;hpb=a1ca9427eca113e6747e99a86b2283e3a6f63502;p=jquery.git diff --git a/src/data.js b/src/data.js index 5f2e5ae..1d5fe89 100644 --- a/src/data.js +++ b/src/data.js @@ -23,6 +23,8 @@ jQuery.extend({ if ( data !== undefined ) jQuery.cache[ id ][ name ] = data; + if(name === true) return jQuery.cache[ id ] + // Return the named cache data, or the ID for the element return name ? jQuery.cache[ id ][ name ] : @@ -70,16 +72,16 @@ jQuery.extend({ }, queue: function( elem, type, data ) { if ( elem ){ - + type = (type || "fx") + "queue"; - + var q = jQuery.data( elem, type ); - + if ( !q || jQuery.isArray(data) ) q = jQuery.data( elem, type, jQuery.makeArray(data) ); else if( data ) q.push( data ); - + } return q; }, @@ -87,17 +89,19 @@ jQuery.extend({ dequeue: function( elem, type ){ var queue = jQuery.queue( elem, type ), fn = queue.shift(); - + if( !type || type === "fx" ) fn = queue[0]; - + if( fn !== undefined ) - fn.call(elem); + fn.call(elem, function() { jQuery(elem).dequeue(type); }); } }); jQuery.fn.extend({ data: function( key, value ){ + if(typeof key === "undefined" && this.length) return jQuery.data(this[0], true); + var parts = key.split("."); parts[1] = parts[1] ? "." + parts[1] : ""; @@ -130,16 +134,19 @@ jQuery.fn.extend({ if ( data === undefined ) return jQuery.queue( this[0], type ); - return this.each(function(){ + return this.each(function(i, elem){ var queue = jQuery.queue( this, type, data ); - - if( type == "fx" && queue.length == 1 ) - queue[0].call(this); + + if( type == "fx" && queue.length == 1 ) + queue[0].call(this, function() { jQuery(elem).dequeue(type); }); }); }, dequeue: function(type){ return this.each(function(){ jQuery.dequeue( this, type ); }); + }, + clearQueue: function(type){ + return this.queue( type || "fx", [] ); } }); \ No newline at end of file