From fa4c90987fc9aede4de3f41976cda91acad81736 Mon Sep 17 00:00:00 2001 From: rwldrn Date: Tue, 1 Feb 2011 17:54:02 -0500 Subject: [PATCH] Fixes #8129. Fix cloning multiple selected options in IE8. --- src/manipulation.js | 4 ++-- test/unit/manipulation.js | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/manipulation.js b/src/manipulation.js index 1ef19f8..19a6c22 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -503,6 +503,8 @@ jQuery.extend({ // proprietary methods to clear the events. Thanks to MooTools // guys for this hotness. + cloneFixAttributes( elem, clone ); + // Using Sizzle here is crazy slow, so we use getElementsByTagName // instead srcElements = elem.getElementsByTagName("*"); @@ -514,8 +516,6 @@ jQuery.extend({ for ( i = 0; srcElements[i]; ++i ) { cloneFixAttributes( srcElements[i], destElements[i] ); } - - cloneFixAttributes( elem, clone ); } // Copy the events from the original to the clone diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index e071086..1313783 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -1006,7 +1006,7 @@ test("clone()", function() { test("clone(form element) (Bug #3879, #6655)", function() { expect(6); - element = jQuery(""); + var element = jQuery(""); equals( element.clone().find("option:selected").val(), element.find("option:selected").val(), "Selected option cloned correctly" ); @@ -1026,6 +1026,14 @@ test("clone(form element) (Bug #3879, #6655)", function() { equals( clone[0].defaultValue, "foo", "Textarea defaultValue cloned correctly" ); }); +test("clone(multiple selected options) (Bug #8129)", function() { + expect(1); + var element = jQuery(""); + + equals( element.clone().find("option:selected").length, element.find("option:selected").length, "Multiple selected options cloned correctly" ); + +}); + if (!isLocal) { test("clone() on XML nodes", function() { expect(2); -- 1.7.10.4