2012-12-07 102 views
5

我有一個淘汰賽排序列表裏面有淘汰賽排序列表。基本上它是基本的「可用學生」示例(http://jsfiddle.net/rniemeyer/UdXr4/),只有我希望表格也可以排序。如何防止刪除嵌套排序允許刪除子列表?

我主要工作,但我有一個能夠將表拖入其他表的問題。

我能表列表,以防止學生被投進表列表上添加的AllowDrop功能,

 this.isTable = function(arg) { 
      return arg.sourceParent != undefined; 
     }; 

,所以我希望能對學生的名單類似的東西,不會允許一張桌子,但是對於我的生活,我無法弄清楚。我試着看着身份證,甚至看到性別財產是否可用(因爲它應該只對學生),無濟於事...

我編輯了一個jsfiddle使它更接近我的情況;你會看到如果你拖動一張桌子,你可以把它放到另一個桌子上。 http://jsfiddle.net/nYSLq/1/

任何幫助或建議將不勝感激。

回答

5

對於這種類型的東西,一個不錯的選擇是使用connectClass選項。這將有助於分類項目可以放入的容器類型。

所以,你可以這樣做:

<div id="main" data-bind="sortable: { data: tables, connectClass: 'tables' }"> 
    <div class="table"> 
     <div data-bind="text: students.id"></div> 
     <div class="seats" data-bind="sortable: { data: students, allowDrop: $root.isTableFull, connectClass: 'students' }"> 
      <div class="student" data-bind="text: name"></div> 
     </div> 
    </div> 
</div> 

注意,插件,這是否類分配給你相應的元素。

現在,學生只會與學生排序,桌子只會排列在一起。

這裏是一個更新的撥弄着一些去掉了不必要的額外的:http://jsfiddle.net/rniemeyer/7yA2s/

+0

太感謝你了,這是我需要什麼,並且清理也不錯。我嘗試了connectedClass,但是我猜想我對如何使用它感到困惑,並且無法使它工作。再次感謝您的迴應。 – user1886432