aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorColin Snover <github.com@zetafleet.com>2010-12-19 15:33:53 -0600
committerColin Snover <github.com@zetafleet.com>2010-12-19 15:33:53 -0600
commitfaefbb1ad0b81e8001b582d06d5bd9c9236e62ce (patch)
tree608ced365e940684a0a2572d365ff97ad50a7863 /src
parent291b1edf444f30d9360a42c8d563e26eaf1a2ddb (diff)
downloadjquery-faefbb1ad0b81e8001b582d06d5bd9c9236e62ce.tar.gz
jquery-faefbb1ad0b81e8001b582d06d5bd9c9236e62ce.zip
Fix #7717 and #7165. Thanks to dmethvin and iliakan for their help fixing these issues.
Diffstat (limited to 'src')
-rw-r--r--src/data.js8
-rw-r--r--src/manipulation.js4
2 files changed, 8 insertions, 4 deletions
diff --git a/src/data.js b/src/data.js
index f1e031fff..120fe718d 100644
--- a/src/data.js
+++ b/src/data.js
@@ -9,7 +9,7 @@ jQuery.extend({
// Please use with caution
uuid: 0,
- // Unique for each copy of jQuery on the page
+ // Unique for each copy of jQuery on the page
expando: "jQuery" + jQuery.now(),
// The following elements throw uncatchable exceptions if you
@@ -21,6 +21,10 @@ jQuery.extend({
"applet": true
},
+ hasData: function( elem ) {
+ return !elem.nodeType || (elem[ jQuery.expando ] && !jQuery.isEmptyObject(jQuery.cache[ elem[jQuery.expando] ]));
+ },
+
data: function( elem, name, data ) {
if ( !jQuery.acceptData( elem ) ) {
return;
@@ -144,7 +148,7 @@ jQuery.fn.extend({
var attr = this[0].attributes, name;
for ( var i = 0, l = attr.length; i < l; i++ ) {
name = attr[i].name;
-
+
if ( name.indexOf( "data-" ) === 0 ) {
name = name.substr( 5 );
dataAttr( this[0], name, data[ name ] );
diff --git a/src/manipulation.js b/src/manipulation.js
index 7dea3493c..c23f62ed1 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -373,12 +373,12 @@ function cloneCopyEvent(orig, ret) {
var i = 0;
ret.each(function() {
- if ( this.nodeType !== 1 || this.nodeName !== (orig[i] && orig[i].nodeName) ) {
+ if ( this.nodeType !== 1 || this.nodeName !== (orig[i] && orig[i].nodeName) || !jQuery.hasData(orig[i]) ) {
return;
}
var oldData = jQuery.data( orig[i++] ),
- curData = jQuery.data( this, oldData ),
+ curData = jQuery.data( this, jQuery.extend(true, {}, oldData) ),
events = oldData && oldData.events;
if ( events ) {