22

I have an element #superWidget in the DOM that is very interactive. It uses jquery UI sortable, draggable, and a bunch of other plugins.

<div id="wrapperA"></div>
<div id="wrapperB">
  <div id="superWidget"></div>
</div>

I want to change the position of #superWidget in the DOM. I want to remove it from #wrapperB and place it in #wrapperA.

<div id="wrapperA">
  <div id="superWidget"></div>
</div>
<div id="wrapperB"></div>

I have tried the following...

var copy = $("#superWidget").clone(true, true);
$("#superWidget").remove();
$("#wrapperA").append(copy);

...however this breaks a lot of the plugins.

I do not want to have to rebind everything. Is there a better way to do this? (I notice that jquery UI sortable is somehow able to move elements around in the DOM without breaking any interactivity... there must be a way.)

Thanks (in advance) for your help

Adeel Ahmed
  • 1,541
  • 8
  • 10
user1031947
  • 5,764
  • 15
  • 51
  • 79

1 Answers1

56

Rather than duplicating, just do this:

document.getElementById('wrapperA').appendChild(document.getElementById('superWidget'));
Niet the Dark Absol
  • 311,322
  • 76
  • 447
  • 566