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.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.