JQueryを使用した Web ページの実装に問題があります。自分がやろうとしていることを理解するのが難しいことはわかっていますが、できる限り明確にするように努めます (私の英語はあまり上手ではありませんが)。
「containment-wrapper」内にドラッグできるdivを持つWebページがあり、ドラッグするとそのメインdivのクローン(コピー)が取得され、このクローンされたdivをドラッグできるように実装しました画面の周り ("containment-wrapper" の内側)。メインdivをドラッグするたびに、別の複製された div が作成されます。それは完全に機能します。
コード:
$(".tool").draggable({
containment: "#containment-wrapper",
helper: 'clone',
stop: function(event, ui) {
if($num==null) $num=0; //treat a number for the id of the next cloned div
else $num++;
$(ui.helper).clone(true).attr("id",$(this).attr("id")+$num).removeClass('tool ui-draggable ui-draggable-dragging ui-widget-content').addClass('element ui-widget-content').appendTo('#containment-wrapper');
}
});
問題は、そのWebページをロードするときに、ユーザーが前部divの状況をサーバーに保存したことを実装する必要があることです:すべての複製されたdivの位置(メインdivのIDと位置-トップを保存しました)そして、左)。
そのため、ページがロードされたときに実行され、ユーザーが保存した複製された div を作成して画面に配置するコードを実装しようとしています (「containment-wrapper」内)。
私はこのコードでそれを手に入れました (私は値を持っています: $id -メインdiv の ID、$leftおよび$top - 作成する必要がある div の位置):
var $obj = $("#"+$id); //get the main div
if($num==null) $num=0; //treat a number for the id of the next cloned div
else $num++;
$obj.clone(true).attr("id",$id+"_"+$num).removeClass('ui-draggable ui-draggable-dragging ui-widget-content').addClass('ui-widget-content').appendTo('#containment-wrapper').css( { "position": "absolute", "left":$left + "px", "top":$top + "px" } );
それは私が望む場所に複製されたdivを作成しますが、私の大きな問題は、その複製されたdivをマウスでドラッグしようとすると、そのdivがドラッグされると、メインのdiv(そこから作成したもの)がドラッグされ始めることです.複製された div) と別の複製された div が作成されます。したがって、私のコードが作成した複製された div をドラッグすることはできません。
私の状況と問題をすべて理解できることを願っています...どうすれば解決できるでしょうか?
私もこのようなことをしようとしました(それで、ドラッグ可能なイベント関数で位置を扱うことを考えていました):
var $obj = $("#"+$id);
$obj.trigger("mousedown.draggable", [ev]);
ev.stopPropagation();
しかし、firebug (firefox プラグイン) でデバッグすると、ドラッグ可能なイベントが実行されないことがわかります。
お時間をいただき、誠にありがとうございました。
アレイクス