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-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=3261544c38ca70cc02c5eed7d0ab2c40c521a588 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 33e109b..c2f94d2 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 248094a..43a4542 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() {