純粋に Javascript を使用してネストされたドラッグ/ドロップ機能を作成する必要があります(Jquery や他のプラグインは使用しないでください)。
アイデアは、グループとしていくつかのdivタグを持ち、そのdivタグ/グループを別のdivタグ/グループの上にドラッグして、それ自体の中にサブグループを作成する機能を持つことです(そのグループの子として)許可されるサブサブの最大レベル私が話していることを説明するには、この Jquery Plugin NestedSortabled の例を見てください。これは、私が探しているものを正確に定義しています。
別の同様の例: http://dbushell.com/2012/06/17/nestable-jquery-plugin/
上記の例とまったく同じように機能するようにコードを開発する必要がありますが、純粋に古い学校の JavaScript のみを使用して、Jquery コードを提案しないでください。
これが私が現在取り組んでいるものですが、私は今立ち往生しており、サブグループ化機能を機能させる方法を理解できません。助けてください!!
私の作業デモ: http://jsbin.com/IzAfutI/1
私の作業デモ + コード: http://jsbin.com/IzAfutI/3/edit?html,css,js,output
編集:
コードの例をさらに詳しく見てみましょう。StartDrag と StopDrag には、機能の背後にある主なロジックが含まれています。基本的に、ユーザーがdivタグをドラッグすると、現在、ドラッグして配置するアイテムの既存のdivタグの上または下にコンテナーを作成していますが、この同じ機能を使用して別のコンテナー内にそのコンテナーを作成すると(サブグループの作成により) エラーが発生します。つまり、問題に間違った方法で取り組んでいる可能性があり、ロジックが間違っているか、コードに何か問題がある可能性があります。
グループ div タグの HTML マークアップ:
<div class="dragContainerUsed">
<div id="a7b94a42-fb00-4011-bd5a-4b48e6e578c5" class="dragPanel">
<input type="hidden" value="1|fa7989d7-1708-4a90-9bf6-c91f6cef6952" />
<div onmousedown="startDrag(event, this.parentNode)" class="dragPanelHeader">
<div style="margin-left:4px; margin-top:3px; float:left;">1 - Group 1<span id="gta7b94a42-fb00-4011-bd5a-4b48e6e578c5"></span></div>
</div>
</div>
<div class=\"dragSubContainerUnUsed\"></div>
</div>
<div class="dragContainerUnUsed"></div>
だから私がしたいのは、ユーザーが別の div を div の上にドラッグすると、dragSubContainerUnUsed はそのサブコンテナ内に配置する必要があります....
ドラッグの開始時に、すべてのコンテナーとサブコンテナーを格納する配列を作成します。
containers = new Array();
subContainers = new Array();
containers.push(dragTarget);
for (i = 0; i < divs.length; i++) {
if (divs[i].className.toLowerCase() == "dragcontainerunused") {
containers.push(divs[i]);
}
}
for (i = 0; i < divs.length; i++) {
if (divs[i].className.toLowerCase() == "dragSubcontainerunused") {
subContainers.push(divs[i]);
}
}
現在、私が立ち往生している部分は関数onDrag
にありstopDrag
、サブグループを作成するためにサブコンテナを機能させる方法がわかりません...
たとえば、グループ 3 をグループ 2 の上にドラッグすると、グループ 3 を 2 のサブグループにする必要があります。次のようにします。
各サブグループに最大 4 つのグループを追加できるはずです。最大 4 つのサブグループがあります。このような:
そして最後に、次のようなサブグループ化のレベルは最大 4 つだけにする必要があります。
問題を特定できる場合は教えてください。または、コードのロジックを変更する必要がある場合は、教えてください。これを作成するために独自の新しいコードを完全に書き直す/作成できる場合でも、できる限り助けてください。アプリケーション作業は非常に高く評価されます。私は数日間これに取り組もうとしていますが、すべての助けが大いに受け入れられます...