Skip to content
Permalink
Browse files

No ticket. Simplifies data methods and updates comments. Closes gh-1233

  • Loading branch information...
markelog authored and rwaldron committed Apr 8, 2013
1 parent ff3f83f commit 1a3939659b2c2506fb50ca3ee21e84c642cb5f64
Showing with 15 additions and 17 deletions.
  1. +15 −17 src/data.js
@@ -49,7 +49,7 @@ Data.prototype = {
descriptor[ this.expando ] = { value: unlock };
Object.defineProperties( owner, descriptor );

// Support: Android<4
// Support: Android < 4
// Fallback to a less secure definition
} catch ( e ) {
descriptor[ this.expando ] = unlock;
@@ -92,8 +92,6 @@ Data.prototype = {
}
}
}

return this;
},
get: function( owner, key ) {
// Either a valid cache is found, or will be created.
@@ -136,11 +134,12 @@ Data.prototype = {
},
remove: function( owner, key ) {
var i, name,
unlock = this.key( owner ),
cache = this.cache[ unlock ];
unlock = this.key( owner ),
cache = this.cache[ unlock ];

if ( key === undefined ) {
this.cache[ unlock ] = {};

} else {
// Support array or space separated string of keys
if ( jQuery.isArray( key ) ) {
@@ -166,7 +165,7 @@ Data.prototype = {

i = name.length;
while ( i-- ) {
delete cache[ name[i] ];
delete cache[ name[ i ] ];
}
}
},
@@ -210,7 +209,7 @@ jQuery.extend({
},

removeData: function( elem, name ) {
return data_user.remove( elem, name );
data_user.remove( elem, name );
},

// TODO: Replace all calls to _data and _removeData with direct
@@ -225,14 +224,14 @@ jQuery.extend({
},

_removeData: function( elem, name ) {
return data_priv.remove( elem, name );
data_priv.remove( elem, name );
}
});

jQuery.fn.extend({
data: function( key, value ) {
var attrs, name,
elem = this[0],
elem = this[ 0 ],
i = 0,
data = null;

@@ -244,7 +243,7 @@ jQuery.fn.extend({
if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
attrs = elem.attributes;
for ( ; i < attrs.length; i++ ) {
name = attrs[i].name;
name = attrs[ i ].name;

if ( name.indexOf( "data-" ) === 0 ) {
name = jQuery.camelCase( name.substring(5) );
@@ -267,12 +266,12 @@ jQuery.fn.extend({

return jQuery.access( this, function( value ) {
var data,
camelKey = jQuery.camelCase( key );
camelKey = jQuery.camelCase( key );

// The calling jQuery object (element matches) is not empty
// (and therefore has an element appears at this[0]) and the
// (and therefore has an element appears at this[ 0 ]) and the
// `value` parameter was not undefined. An empty jQuery object
// will result in `undefined` for elem = this[0] which will
// will result in `undefined` for elem = this[ 0 ] which will
// throw an exception if an attempt to read a data cache is made.
if ( elem && value === undefined ) {
// Attempt to get data from the cache
@@ -297,7 +296,7 @@ jQuery.fn.extend({
}

// We tried really hard, but the data doesn't exist.
return undefined;
return;
}

// Set the data...
@@ -311,10 +310,10 @@ jQuery.fn.extend({
// This might not apply to all properties...*
data_user.set( this, camelKey, value );

// *... In the case of properties that might ACTUALLY
// *... In the case of properties that might _actually_
// have dashes, we need to also store a copy of that
// unchanged property.
if ( /-/.test( key ) && data !== undefined ) {
if ( key.indexOf("-") !== -1 && data !== undefined ) {
data_user.set( this, key, value );
}
});
@@ -334,7 +333,6 @@ function dataAttr( elem, key, data ) {
// If nothing was found internally, try to fetch any
// data from the HTML5 data-* attribute
if ( data === undefined && elem.nodeType === 1 ) {

name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
data = elem.getAttribute( name );

0 comments on commit 1a39396

Please sign in to comment.
You can’t perform that action at this time.