0

jQueryのドラッグアンドドロップに問題があります。私のコードにはドラッグ可能なdivがあります。ドロップ可能な特定のテーブルセルに移動すると、divのクローンがテーブルセルに追加されます。しかし、クローンをドラッグすると、代わりに元のdivが移動します。これは、ドロップ時に呼び出される関数です。

function(event, ui)
{
    var draggable = ui.draggable.clone(true);  // cloning including attrs and children
    draggable.draggable(); // this is something I tried with no effect
    $(this).empty(); // empty the droppable cell
    $(this).append(draggable); // append the div to the cell
}

グーグルで明確な答えを見つけることができませんでした。これと関係があるかどうかはわかりませんが、divは相対的な位置にあります(そしてそのようにとどまる必要があります)。

クローンを元のクローンと同じようにドラッグできるようにするにはどうすればよいですか?

4

5 に答える 5

4

これは私がそれをする方法です、これはトリックをするべきです。

 $(".draggable").draggable({ helper: 'clone' });
 $(".droppable").droppable({
    drop: function (event, ui) {
       ui.draggable.clone().appendTo($(this)).draggable();
    }
 });

あなたがそうしたかどうかはわかりませんが、ドラッグ可能なものにid-sを使用しないでください。これは、それらも複製されるためです。また、ドラッグ可能な要素を適用する前に、要素を追加する必要があります。

于 2011-04-06T16:03:34.890 に答える
1

falseを.clone()に渡してみましたか?そのブール値はwithDataAndEventsの略であるため、古いオブジェクトにもアタッチされている同じイベントをすべて継承します。

編集:他の理由でwithDataAndEventsが必要な場合は、クローンを作成する直前にオリジナルでdraggable( "destroy")を使用してみて、その後再びドラッグ可能にしますか?最もエレガントではありませんが、機能します:http: //jsfiddle.net/GheD5/

于 2011-04-06T15:15:06.130 に答える
1

initコードを変更draggableして含めるhelper: "clone"

 $("selector").draggable({
      ...
      helper: "clone",
      ...
 });

それ以外の場合は、ドラッグ操作を終了した場所に残っている元のアイテムをドラッグしています。

于 2011-04-06T15:21:09.787 に答える
0

ヘルパーオプションを見たことがありますか?

于 2011-04-06T15:13:31.603 に答える
0

完全なコードを表示できますか?今推測しているだけですが、「delegate()」http://api.jquery.com/delegate/を使用することがソリューションの鍵になる可能性があります。

于 2011-04-06T15:18:07.130 に答える