2010-10-25 22 views
3

我有一些用戶可以對li進行排序的ul。我有2種不同的li,需要限制他們可以放入哪個列表。這裏是一個小例子:JQuery UI Sortable - 限制下降到某些元素

<ul class="top"> 
    <li class=typeA">Item</li> 
    <li class=typeA">Item</li> 
    <li class=typeB">Item</li> 
     <ul class="sub"> 
      <li class=typeB">Item</li> 
      <li class=typeB">Item</li> 
      <li class=typeB">Item</li> 
     </ul> 
</ul> 

<ul class="top"> 
    <li class=typeA">Item</li> 
    <li class=typeA">Item</li> 
    <li class=typeA">Item</li> 
</ul> 
  1. 類型A永遠只能出現在頂層,而且必須只能被丟棄到另一個頂級組。

  2. TypeB可以出現在頂部或子級別,並且必須能夠放入任一組。

  3. 此外,子ul組必須能夠從一個頂層組丟棄。

使用下面的代碼,我能夠acheive點1和部分2點,但是當一個類型B已從子組進入前組它就可以永遠不會回去:

$(function() { 
    $('.connectedSortable').sortable({ 
     'items': '> li', 
     'connectWith': '.connectedSortable' 
    }); 
    $('.subList').sortable({ 
     'items': 'li', 
     'connectWith': '.connectedSortable' 
    }); 
}); 

任何幫助將不勝感激。

感謝

回答

0

我不認爲你可以只用配置表,因爲一旦你移動A B項至頂層實現這個它要表現得像一個A項。我認爲你將不得不在每個表上設置事件,比如'over'事件,並編寫代碼來檢查被移動的項目是否屬於這個列表。