diff --git a/src/core.js b/src/core.js index 33e109b9..c2f94d2b 100644 --- a/src/core.js +++ b/src/core.js @@ -498,7 +498,7 @@ jQuery.fn = jQuery.prototype = { jQuery.each(elems, function(){ var elem = clone ? - this.cloneNode( true ) : + jQuery( this ).clone( true )[0] : this; // execute all scripts after the elements have been injected diff --git a/test/unit/event.js b/test/unit/event.js index 248094a9..43a4542f 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -1,7 +1,7 @@ module("event"); test("bind()", function() { - expect(18); + expect(19); var handler = function(event) { ok( event.data, "bind() with data, check passed data exists" ); @@ -85,6 +85,11 @@ test("bind()", function() { $("#nonnodes").contents().bind("tester", function () { equals(this.nodeType, 1, "Check node,textnode,comment bind just does real nodes" ); }).trigger("tester"); + + // Make sure events stick with appendTo'd elements (which are cloned) #2027 + $("test").click(function(){ return false; }).appendTo("p"); + ok( $("a.test:first").triggerHandler("click") === false, "Handler is bound to appendTo'd elements" ); + reset(); }); test("click()", function() {