From: John Resig Date: Thu, 20 Dec 2007 13:36:56 +0000 (+0000) Subject: Fixed #2027 - make sure that cloned elements (within appendTo, etc.) have their event... X-Git-Tag: 1.2.2b2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3261544c38ca70cc02c5eed7d0ab2c40c521a588;p=jquery.git Fixed #2027 - make sure that cloned elements (within appendTo, etc.) have their events cloned by default. --- diff --git a/src/core.js b/src/core.js index 33e109b92..c2f94d2b7 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 248094a96..43a4542f0 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() {