2016-11-07 27 views
0

UIデザイナーのようなものを作成しようとしています。だから私は「ツールボックス」と「キャンバス」を持っています。ツールボックスのアイテムをドラッグ可能にすると、ドラッグすることができます。しかし私が必要とするのは、コピーをドラッグすることで、ツールアイテムの複数のインスタンスをキャンバスにドラッグすることができます。ドラッグ可能なオブジェクトをドラッグ可能に変更する

$('.tool-box-item').draggable({ 
    helper : 'clone', 
    drag : function (event, ui){ 
     // jQuery does not allow object modification here 
    }, 
}); 

クローニングは唯一、とすぐにドラッグが完了すると、元の要素の移動をドラッグしている間に適用されるので、これは動作しません。ドラッグプロパティをオーバーライドしようとしましたが、ドラッグされた要素を変更できません。スタートでも同じだった。

注:ストップイベントは、ドラッグの開始時および終了後にコピーを作成したいので使用できません。私はキャンバスをドロップ可能なものとして定義してコピーを作成することもできましたが、ドラッグを開始したときにコピーを作成したいのです。

私はカスタムドラッグ機能を作成する必要があると思いますが、jQueryに他の方法があると思っていました。

ここにはjsfiddleがありますが、ドラッグの後ではなく開始時に要素をクローンしたいと思います。

EDIT:宛先はサードパーティコントロールです。これは、ドロップイベント(スタッキングと整列)のための独自の実装を持っています。私が最後にクローンを作成した場合は、その実装を変更する必要があります。

+0

をcodepen

var graggableConfig = { helper:"clone", stop: function(event, ui){ var clon = $(this).clone(); clon.attr("style","") .appendTo(".src") .draggable(graggableConfig); $(this).detach() .attr("style","") .appendTo(".dst") .draggable("destroy"); } }; $(".item").draggable(graggableConfig); 

あなたはなぜあなたは最後にドラッグではなく、開始時の要素のクローンを作成する必要があり、説明していただけますか? –

+0

@ YuriGor宛先は第三者のコントロールです。これは、ドロップイベント(スタッキングと整列)のための独自の実装を持っています。私が最後にクローンを作成した場合は、その実装を変更する必要があります。 –

+0

私は下記を参照してください。私の答えを確認してください。私はこの要望に従って編集しました。 –

答えて

1

ドラッグのために元の要素を使用しようと、「dragendイベント」イベントを保つために、そしてあなたの "ツールボックス"の場所に複製してください。 here

+0

ありがとうございました。これは私が必要としていたものに近いです。私を正しい方向に向ける。 –

0

jqueryのclonehttps://api.jquery.com/clone/)メソッドを使用すると、ドラッグ可能な要素を削除した後に複製することができます。このようなものはあなたのニーズを満たすでしょうか?

$(function() { 
    makeDraggable($("#draggable")); 
}); 

function makeDraggable(element) { 
    $(element).attr('style', 'position:absolute').draggable({ 
     start: function() { 
      makeDraggable($('#draggable').clone().attr('style', '').appendTo('body')); 
     } 
    }); 
} 

ここで少し荒いが、そのはjsbinです:https://jsbin.com/tasodixoka/edit?html,output

編集:私はあなたのフィドルを更新:https://jsfiddle.net/z9rrL6po/6/

+0

申し訳ありませんが、いいえ。同じようなことを投稿したjsfiddleが表示されたら、ドラッグが開始されたときにそのクローンを作成できるようにしたい。 –

+0

私は、ドラッグ可能な要素がコンテキスト内で要素をドラッグしていないので、実際にはこれを行うつもりはないと感じている可能性があります。 –

関連する問題