1

scriptaculous を使用し、問題が発生している古いプロジェクトに取り組んでいます。現在、次のようなツリー構造があります。

Item 1
  + Item 1a
    + Item 1aa
    + Item 1ab
  + Item 1b 
Item 2
  + Item 2a
  + Item 2b
    + Item 2ba
    + Item 2bb

ツリー オプションを使用して並べ替えを設定した方法で、ユーザーはアイテム 2bbアイテム 2aにドラッグすることができますが、これを防止しようとしています。ドラッグしたアイテムを親カテゴリ内に保持したいと思います。したがって、アイテム 2baがアイテム 2bの下に存在する場合、ユーザーはアイテムをその親の外にドラッグできません。私が使用している作成コードは非常に単純です。

Sortable.create('cats', {tree:true,scroll:window,treeTag:'ul',tag:'li', onChange:function(){$('save-cats').style.visibility='visible';}});

構造は標準<li>タグで構成されています (ネストされた<ul>タグに注意してください:

<ul>
<li>Item 1</li>
<li>
   Item 2
   <ul>
      <li>Item 2a</li>
   </ul>
</li>
</ul>

これはscriptaculousでも可能ですか、それとも別のものにアップグレードする必要がありますか?

これが動的リストであることを忘れていました。封じ込めオプションが探しているものかどうかはわかりませんが、一意の ID を持っていないため、可能ではないようです。

アップデート

これが役立つ場合、私は次のコードをいじっています:

new Draggable('cats',{revert:true});

    Droppables.add('cats', { 
    onDrop: function(element) 
            {
                return false;
            }});

cat はメインの ul 要素の ID です。onDrop が発火していますが、元に戻すことも、アイテムを「受け入れない」こともできません。それができれば、現在の親と新しい親を比較し、同じでない場合は要素を押し戻すことができると想定しています。

4

0 に答える 0