aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeresig <jeresig@gmail.com>2010-01-11 15:57:45 -0500
committerjeresig <jeresig@gmail.com>2010-01-11 15:57:45 -0500
commit36a98b95c2f3f7617ddf51beec7515acf67d98ba (patch)
treebbbaeb579109584adf91aedbcff208c5e11891f1
parent366039a6f05ffa09630e95be604e3f4f26a33bd6 (diff)
downloadjquery-36a98b95c2f3f7617ddf51beec7515acf67d98ba.tar.gz
jquery-36a98b95c2f3f7617ddf51beec7515acf67d98ba.zip
Make sure we use detach instead of remove in replaceWith. Fixes #5785.
-rw-r--r--src/manipulation.js2
-rw-r--r--test/unit/manipulation.js11
2 files changed, 11 insertions, 2 deletions
diff --git a/src/manipulation.js b/src/manipulation.js
index 9ed22baaf..f2f6c7de6 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -216,7 +216,7 @@ jQuery.fn.extend({
return this.each(function() {
var next = this.nextSibling, parent = this.parentNode;
- jQuery(this).remove();
+ jQuery(this).detach();
if ( next ) {
jQuery(next).before( value );
diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js
index a7e1f7e45..52becfefb 100644
--- a/test/unit/manipulation.js
+++ b/test/unit/manipulation.js
@@ -626,7 +626,7 @@ test("insertAfter(String|Element|Array&lt;Element&gt;|jQuery)", function() {
});
var testReplaceWith = function(val) {
- expect(14);
+ expect(16);
jQuery('#yahoo').replaceWith(val( '<b id="replace">buga</b>' ));
ok( jQuery("#replace")[0], 'Replace element with string' );
ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after string' );
@@ -648,6 +648,15 @@ var testReplaceWith = function(val) {
ok( jQuery("#mark")[0], 'Replace element with set of elements' );
ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after set of elements' );
+ reset();
+ var tmp = jQuery("<div/>").appendTo("body").click(function(){ ok(true, "Newly bound click run." ); });
+ var y = jQuery('#yahoo').click(function(){ ok(true, "Previously bound click run." ); });
+ y.replaceWith( tmp );
+ tmp.click();
+ y.click();
+
+ reset();
+
var set = jQuery("<div/>").replaceWith(val("<span>test</span>"));
equals( set[0].nodeName.toLowerCase(), "span", "Replace the disconnected node." );
equals( set.length, 1, "Replace the disconnected node." );