Skip to content
Permalink
Browse files

Extracted the logic for copying events from one jQuery set to another…

…, makes it easier to work with disconnected DOM nodes.
  • Loading branch information
jeresig committed Dec 2, 2009
1 parent 391f83b commit 62436f4b292aadfe5419f897d7b8504054ab1c8c
Showing with 20 additions and 15 deletions.
  1. +20 −15 src/manipulation.js
@@ -168,21 +168,8 @@ jQuery.fn.extend({

// Copy the events from the original to the clone
if ( events === true ) {
var orig = this.find("*").andSelf(), i = 0;

ret.find("*").andSelf().each(function(){
if ( this.nodeName !== orig[i].nodeName ) { return; }

var events = jQuery.data( orig[i], "events" );

for ( var type in events ) {
for ( var handler in events[ type ] ) {
jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
}
}

i++;
});
cloneCopyEvent( this, ret );
cloneCopyEvent( this.find("*"), ret.find("*") );
}

// Return the cloned set
@@ -284,6 +271,24 @@ jQuery.fn.extend({
}
});

function cloneCopyEvent(orig, ret) {
var i = 0;

ret.each(function(){
if ( this.nodeName !== orig[i].nodeName ) {
return;
}

var events = jQuery.data( orig[i], "events" );

for ( var type in events ) {
for ( var handler in events[ type ] ) {
jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
}
}
});
}

function buildFragment(args, nodes, scripts){
var fragment, cacheable, cached, cacheresults, doc;

0 comments on commit 62436f4

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