2009-06-23 66 views
2

嘿,所有。這是場景。我有下面的代碼,我需要重新排列這些列中的項目。問題是......項目不一定需要保留在其包含的列中,它們需要能夠來回切換,具體取決於用戶。下面是示例代碼:jQuery可排序爲兩列重新排序?

<div id="container"> 
    <div id="left-col"> 
     <div class="wrapper"> 
      <div class="item"> 
       <h2>Row 1 Column 1</h2> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
      </div> 
     </div> 
     <div class="wrapper"> 
      <div class="item"> 
       <h2>Row 2 Column 1</h2> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
      </div> 
     </div> 
    </div><!-- end left-col --> 
    <div id="right-col"> 
     <div class="wrapper"> 
      <div class="item"> 
       <h2>Row 1 Column 2</h2> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
      </div> 
     </div> 
     <div class="wrapper"> 
      <div class="item"> 
       <h2>Row 2 Column 2</h2> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
       <p>Lorem ipsum dolor sit amet</p> 
      </div> 
     </div> 
    </div><!-- end right-col --> 
</div> 

和相關的CSS:

#container { 
      border: 1px solid black; 
      overflow: hidden; 
      margin: auto; 
     } 
     #container .wrapper { 
      width: 100%; 
     } 
     #container #left-col .item { 
      margin: .5em .25em .5em .5em; 
      border: 1px solid black; 
     } 
     #container #right-col .item { 
      margin: .5em .5em .5em .25em; 
      border: 1px solid black; 
     } 
     #left-col, #right-col { width: 50%; } 
     #left-col { float: left; } 
     #right-col { float: right; } 
     .item h2 { background: #ccc; } 

我想知道是否有可能使用jQuery的排序插件/訂單包裝元素中的代碼進行排序,或者如果我將不得不推出我自己的解決方案。如果我想要將中的元素排列在的左側或右側列中,而不是彼此之間,則該插件可以工作。任何幫助將不勝感激。

+0

你想創建一個左到右(添加/刪除)選擇? – 2009-06-23 20:38:06

+0

類別。元素應該能夠在其各自的列中「上下移動」,並且如果需要,可以從左到右「移動」到另一列。 – blparker 2009-06-23 20:43:02

回答

3

原來有一個更簡單的解決方案。隨着羅伯特的幫助下,他提供的鏈接,該解決方案正常工作:

$(function() { 
    $("#left-col").sortable({ 
     handle: '.item h2', 
     connectWith: '#right-col' 
    }).disableSelection(); 
    $("#right-col").sortable({ 
     handle: '.item h2', 
     connectWith: '#left-col' 
    }).disableSelection(); 
}); 

如前所述,與排序說,我可以每個項目其推崇的列進行排序,但它不能被「下降「在對面一欄。通過可排序插件上的connectWith屬性,您可以指定您想要排序的另一個可排序對象。感謝所有的幫助。

3

TableSorter插件應該做你需要的。它只適用於表格,但它非常靈活;它甚至有特殊的數字處理。我目前正在使用它在我正在進行的一個項目中。

http://www.tablesorter.com/

1

jQuery用戶界面可排序應該讓你一列中上下移動項目:

http://jqueryui.com/demos/sortable/

這是一個有點混亂,因爲jQuery的網站也有一個Sortable頁,目前看起來不起作用的演示。

您可能還需要jQuery用戶界面可放開:

http://jqueryui.com/demos/droppable/

可放開將允許您將它從一列拖放到其他。這裏是jQuery的網站上的鏈接,可放​​開(此演示不工作):

http://docs.jquery.com/UI/API/1.7/Droppable

0

如果你打算去一個拖/放液,threedubmedia有一個更快,少臃腫的版本比jQuery UI庫。

我的演示是here。您可以在列表之間移動名稱,但它不會在列表中排序。儘管如此,這應該是一個簡單的改變。

0

你可以得到一個例子在這裏:它漂亮的模仿的iGoogle接口排序和刪除沿無論你想:iGoogle