]> source.dussan.org Git - jquery.git/commitdiff
The default for .clone() is to not clone any events. Fixes #8123.
authorjeresig <jeresig@gmail.com>
Tue, 1 Feb 2011 13:57:18 +0000 (08:57 -0500)
committerjeresig <jeresig@gmail.com>
Tue, 1 Feb 2011 13:57:18 +0000 (08:57 -0500)
src/manipulation.js
test/unit/manipulation.js

index 442a14d2990dc978c8374232050988cb6dc2a4db..1ef19f83b54ee56b2d7a2c2baf141b1e8c7dd0e1 100644 (file)
@@ -184,7 +184,7 @@ jQuery.fn.extend({
        },
 
        clone: function( dataAndEvents, deepDataAndEvents ) {
-               dataAndEvents = dataAndEvents == null ? true : dataAndEvents;
+               dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
                deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
 
                return this.map( function () {
index f0e2eaec2643820d9e5b68f853672e76164e2ec8..e07108696aa2aa17f55c133cca44dd2861604928 100644 (file)
@@ -953,6 +953,17 @@ test("clone()", function() {
        div.remove();
        clone.remove();
 
+       var divEvt = jQuery("<div><ul><li>test</li></ul></div>").click(function(){
+               ok( false, "Bound event still exists after .clone()." );
+       }),
+               cloneEvt = divEvt.clone();
+
+       // Make sure that doing .clone() doesn't clone events
+       cloneEvt.trigger("click");
+
+       cloneEvt.remove();
+       divEvt.remove();
+
        // this is technically an invalid object, but because of the special
        // classid instantiation it is the only kind that IE has trouble with,
        // so let's test with it too.