2011-07-29 42 views

回答

7

JQuery UI排序似乎有麻煩時,使用可連接的列表/表使用可排序的表體。實現這一目標的另一種方法是將表格本身設置爲可排序的容器,並將其設置爲可排序的,在這種情況下,我們只需要tr中的而不是thead中的tr。這裏的工作示例如下:http://jsfiddle.net/ZLzU3/62/

+0

非常感謝您 – Jason

+2

'得到:函數(即,UI){ '如果($( 'TBODY TR',這一點)。長度= =(0){ '$(this).find(「tbody」)。append(ui.item); '} '} 這使得功能更準確。 –

0

Xnake的答案解決了一個問題(並非常感謝他),但創建了一個自己的問題:如果您在兩個包含內容的表之間移動項目,則移動的項目將始終纏在你添加它的桌子底部。如果這就是你要找的行爲,那很好,但如果沒有,則需要更換自己的接收處理程序:

function(e, ui) 
{ 
    $(this).find("tbody").append(ui.item); 
} 

有:

function(e, ui) 
{ 
    var collection = $(this).find("tbody tr"); 
    if(collection.length < 1) 
    { 
    $(this).find("tbody").append(inserted); 
    } 
    else 
    { 
    $(ui.placeholder).replaceWith(inserted); 
    } 
} 

它保留了他的錯誤,殺害行爲的空表,但是當表中有項目時,保留小部件的默認行爲。

可能有更好的方法來做到這一點;我一直無法找到任何令人滿意的方式來調用覆蓋內的默認功能,這將是理想的。

+0

「插入」來自哪裏?沒有定義... – user1987392