2009-05-05 15 views
4

ドラッグアンドドロップ機能を使用してネストされたリストを作成しました。私の問題は、各入れ子がそれ自身で分類されることです。例:jquery.uiソート可能な問題

 
-first_level 
-first_level 
-second_level 
-second_level 
-first_level 

「第1レベル」は「第2レベル」になり、その逆もありません。私は封じ込めのオプションでこれを行うことができると思ったが、そこにはサイコロはなかった。それは、第1レベルから第2レベルを維持するが、それ以外のレベルでは維持しないように機能する。ここで

は私の例JSやリストである:

$("#sort_list").sortable({ 
    containment: '#sort_list',            
    axis: 'y', 
    revert: true, 
    items: 'li', 
    opacity: 0.8 
}); 
$(".sub_list").sortable({ 
    containment: 'parent', 
    axis: 'y', 
    revert: true, 
    items: 'li', 
    opacity: 0.8, 
}); 
$("#sort_list").disableSelection(); 

<ul id="sort_list"> 
    <li>one</li> 
    <li>two 
    <ul class="sub_list"> 
    <li>sub one</li> 
    <li>sub two</li> 
    </ul> 
    </li> 
    <li>three</li> 
    <li>four</li> 
</ul> 

任意のアイデア?みんなありがとう!

+0

どのブラウザをお使いですか? – cdeszaq

+0

少なくともFFで働いていれば嬉しいです。現在、現在のドラッグ&ドロップ機能は、すべてのブラウザで機能します。 – Davy

答えて

0

さて、問題が見つかったようです。私は宣言していました:items: 'li'なので、ULをコンテナ/ソート可能なアイテムとして検出しませんでした。私は以下:)

を通じてこのすべてを考える助けるためkarim79に大きな感謝を作業コードは(基本的に「誰もが自分のコンテナにとどまる」と言っています)されています

$("#sort_list").sortable({ 
     containment: 'parent',                      
     axis: 'y', 
     revert: true, 
     opacity: 0.8 
    }); 
    $(".sub_list").sortable({ 
     containment: 'parent', 
     axis: 'y', 
     revert: true, 
     opacity: 0.8, 
    }); 
    $("#sort_list").disableSelection(); 

    <ul id="sort_list"> 
     <li>one</li> 
     <li>two 
     <ul class="sub_list"> 
     <li>sub one</li> 
     <li>sub two</li> 
     </ul> 
     </li> 
     <li>three</li> 
     <li>four</li> 
    </ul> 

を今、私たちが得たこと」 item:li "リストされた物が衝突することなくトップリストから封じ込め: '親'を取り除くことさえできます。

2

封じ込めオプションにのような複雑なセレクタ与えて試してみてください:あなたはjQueryの1.3以降使用している場合トリックを行う必要があることを

$("#sort_list").sortable({ 
    containment: '#sort_list:not(.sub_list)',                      
    axis: 'y', 
    revert: true, 
    items: 'li', 
    opacity: 0.8 
}); 

を:(manualから)

jQuery 1.3以降:not()も セレクタをカンマで区切ってサポートし、 複合セレクタf例: :not(div a)と:not(div、a)です。 '、 DOM要素、 '親'、 '文書' することができます -

指定された要素の 境界内にドラッグ拘束します:

jQueryのソート可能なマニュアルはcontainmentオプションが語りますウィンドウ '、またはjQuery セレクタです。

+0

それが単なるものならば! Ha、それは私がその場で例を書こうとしたときに得たものです。私が知る限り、それはクラス名の問題ではありません。 – Davy

+0

正直言ってセレクタにはかなり新しいですが、jquery APIをチェックアウトしたところ、かなり簡単です。私はあなたの提案された変更をここでhttp://www.stiprojects.com/sortable.htmlで簡単なデモをセットアップしました。あなたは彼らが一種の滑り合っているのを見ることができます。また、ちょっとイライラするのは、「封じ込め」を使用すると、トップとボトムのリストを見つけるのが難しくなるということです。 – Davy

関連する問題