diff --git a/src/manipulation.js b/src/manipulation.js index e3a7f6b12..52a869dae 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -461,6 +461,11 @@ function cloneFixAttributes( src, dest ) { // Event data gets referenced instead of copied if the expando // gets copied too dest.removeAttribute( jQuery.expando ); + + // Clear flags for bubbling special change/submit events, they must + // be reattached when the newly cloned events are first activated + dest.removeAttribute( "_submit_attached" ); + dest.removeAttribute( "_change_attached" ); } jQuery.buildFragment = function( args, nodes, scripts ) { diff --git a/test/delegatetest.html b/test/delegatetest.html index 012d27c91..a291763b2 100644 --- a/test/delegatetest.html +++ b/test/delegatetest.html @@ -143,7 +143,7 @@ $(function(){ }); // Events we want to track in row-order -var events = "bind-change live-change on-change bind-propertychange live-beforeactivate live-focusin bind-focus live-beforedeactivate live-focusout bind-blur live-click live-keydown".split(" "), +var events = "bind-change live-change onX-change bind-propertychange live-beforeactivate live-focusin bind-focus live-beforedeactivate live-focusout bind-blur live-click live-keydown".split(" "), counter = 0; blinker = function(event){ if ( !counter ) { @@ -172,7 +172,7 @@ for ( var i=0; i < events.length; i++ ) { $("#changes thead td").each(function(){ var id = "#"+this.id, $cell = $('