0

定義済みのオブジェクトグラブを提供して、後でクローンを作成し、クローンに追加機能を追加しようとしています。私が直面している問題は、オブジェクトを複製できることですが、後でDOMに追加されるのはそのうちの1つだけです。

これまでのコードは次のとおりです。

var foo = jQuery.extend({}, Grab);
var bar = jQuery.extend({}, Grab);

$('body').append(foo);
$('body').append(bar);

クローンで Grab の.daggable機能が必要なため、jQuery.extend()を使用します。

どんな提案でも大歓迎です!

4

1 に答える 1

5

通常、それをコピーするためにGrab使用する必要がある要素である場合は、そうではありません.clone(true, true)$.extend()

パラメータにより、元のtrueオブジェクトのディープ コピーになります。

ただし、これではドラッグ可能な設定が正しくコピーされない可能性があります。オブジェクトが複製されたからといって、すべての状態がコピーされているとは限りません。特に、ドラッグ可能な状態のいずれかが字句スコープのプライベート変数に格納されている場合、それは機能しません。

同様に、関数が最初に要素に追加されたときに行うその他の設定も.draggable行われていません。

IMHO、あなたの最善の策は、使用.clone(false)して浅いコピーを作成し、コピーを呼び出し.draggableてから、イベントハンドラーを再アタッチすることです。

于 2012-08-15T14:02:47.647 に答える