git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make sure that missing attributes return undefined in Blackberry 4.7. Fixes #6938.
[jquery.git]
/
src
/
data.js
diff --git
a/src/data.js
b/src/data.js
index
6dcfb4c
..
d38d47d
100644
(file)
--- a/
src/data.js
+++ b/
src/data.js
@@
-27,7
+27,8
@@
jQuery.extend({
elem;
var id = elem[ jQuery.expando ], cache = jQuery.cache, thisCache,
elem;
var id = elem[ jQuery.expando ], cache = jQuery.cache, thisCache,
- isNode = elem.nodeType;
+ isNode = elem.nodeType,
+ store;
if ( !id && typeof name === "string" && data === undefined ) {
return;
if ( !id && typeof name === "string" && data === undefined ) {
return;
@@
-49,27
+50,25
@@
jQuery.extend({
if ( isNode ) {
cache[ id ] = jQuery.extend(true, {}, name);
} else {
if ( isNode ) {
cache[ id ] = jQuery.extend(true, {}, name);
} else {
+ store = jQuery.extend(true, {}, name);
cache[ id ] = function() {
cache[ id ] = function() {
- return jQuery.extend(true, {}, name);
- }
+ return store;
+ };
}
} else if ( !cache[ id ] ) {
if ( isNode ) {
cache[ id ] = {};
} else {
}
} else if ( !cache[ id ] ) {
if ( isNode ) {
cache[ id ] = {};
} else {
- var store = {};
+ store = {};
cache[ id ] = function() {
return store;
cache[ id ] = function() {
return store;
- }
+ };
}
}
}
}
- thisCache = cache[ id ];
- if ( !isNode ) {
- thisCache = thisCache();
- }
+ thisCache = isNode ? cache[ id ] : cache[ id ]();
// Prevent overriding the named cache with undefined values
if ( data !== undefined ) {
// Prevent overriding the named cache with undefined values
if ( data !== undefined ) {
@@
-144,13
+143,18
@@
jQuery.fn.extend({
if ( data === undefined && this.length ) {
data = jQuery.data( this[0], key );
}
if ( data === undefined && this.length ) {
data = jQuery.data( this[0], key );
}
+
return data === undefined && parts[1] ?
this.data( parts[0] ) :
data;
return data === undefined && parts[1] ?
this.data( parts[0] ) :
data;
+
} else {
} else {
- return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() {
+ return this.each(function() {
+ var $this = jQuery( this ), args = [ parts[0], value ];
+
+ $this.triggerHandler( "setData" + parts[1] + "!", args );
jQuery.data( this, key, value );
jQuery.data( this, key, value );
- jQuery.event.trigger( "changeData" + parts[1] + "!", [parts[0], value], this );
+ $this.triggerHandler( "changeData" + parts[1] + "!", args );
});
}
},
});
}
},