jQueryUIとクローン要素で奇妙な問題が発生しています。jQuery UIイベントは正しくコピーされているように見えますが、イベントはクローンされたものではなく、元のDOMオブジェクトを参照しているようです。
このJSフィドルは問題を示しています:http://jsfiddle.net/XDrC5/
HTMLは次のとおりです。
<button id="clone">Clone</button>
<div id="source">
<div id="elem"></div>
</div>
<div id="copy">
</div>
そしてJavascript:
$(document).ready( function() {
$("#elem").resizable({
containment:"parent"
}).draggable({
containment:"parent"
});
$("#clone").on("click", function() {
var newHTML = $("#source").clone(true);
$("#copy").html(newHTML.contents());
});
});
[クローン]をクリックすると、下のボックスのオレンジ色の正方形が適切に複製されますが、新しい正方形をドラッグしようとすると、元の正方形が移動します。新しい正方形のサイズを変更しようとしても、何も起こりません。
これにより、複製された要素でjQueryUIメソッドを呼び出そうとすると大きな問題が発生します。たとえば.draggable("destroy");
、クローンの後に呼び出すと、実際には元の要素からドラッグ可能要素が削除され、新しい要素と古い要素の両方が移動できなくなります。
これを回避する方法があるのか、単に密度が高いのか、それともこれが避けられないバグなのかはわかりません。どんな助けでも大歓迎です。