The default for .clone() is to not clone any events. Fixes #8123.

This commit is contained in:
jeresig 2011-02-01 08:57:18 -05:00
parent eb5aab9952
commit 375b787838
2 changed files with 12 additions and 1 deletions

View 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 () {

View 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.