2012-01-03 24 views
0

我有這方面的工作職能由跨度內容逆向jQuery的功能,如果輸入檢查

var list = $("ul#videosList"); 
var desc= false; 
list.append(list.children().get().sort(function(a, b) { 
    var aProp = $(a).find("span").text(), 
     bProp = $(b).find("span").text(); 
    return (aProp > bProp ? 1 : aProp < bProp ? -1 : 0) * (desc ? -1 : 1); 
})); 

這我是從這裏訂購列表:Order ul list by span content

現在的問題是,我該如何扭轉那個函數,如果其中一個複選框被選中?而相反,我的意思是在訂購之前將其恢復到默認狀態。

回答

1

只保留對原始list.children()對象的引用。

更新:

我的意思是你應該保持像一個參考:

var $orig_order = list.children(); 

之前,您撥打電話到.get().sort()$orig_order中元素的順序不會改變,不管它們在DOM中如何連接。所以,如果你想在某個時候恢復原來的秩序,你只需將它們重新添加到列表中:

list.append($orig_order); 
+0

抱歉耽擱菲利克斯但我一直忙於其他的事情,你能解釋更位,如果你不介意? – Alex 2012-01-14 22:42:45

+0

我澄清了我的答案,我希望它有幫助:) – 2012-01-15 02:14:08

+0

我會盡快嘗試,非常感謝你 – Alex 2012-01-15 11:05:29