Extracted the logic for copying events from one jQuery set to another, makes it easier to work with disconnected DOM nodes.
This commit is contained in:
parent
391f83b2a2
commit
62436f4b29
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue