2011-12-02 54 views
11

使用Isotope插件,我試圖實現一個排序系統,通過點擊一個項目,通過在單擊項目後定位相同類型的項目來形成組。jQuery Isotope - 按「組」排序數據

同位素的排序/過濾函數似乎不是爲此設計的,所以我最初的方法是使用.insertAfter重新排列DOM,然後觸發'reLayout'。

但是,看起來在初始化後,DOM順序並不相關,並且破壞和重新初始化同位素工作,但這會導致不希望的滾動位置跳轉。

(參見:http://jsfiddle.net/owenhoskins/r7MgY/10896/

是否有方法來更新基於DOM結構同位素沒有重新初始化?

或者,爲了達到這個目的,可以設想與分類/過濾功能接口嗎?

由於提前, 歐文

+0

我相信我們可以使用更多的參與排序系統,但是您需要更好地描述一下您的最終結果應該是什麼。在你的例子中,你希望單擊之前的元素保持未排序? (除非它們是相同的顏色?)在幾次點擊之後,整個桌子按照類型分組..就是你想要的(就像在你的演示中一樣)? –

+0

感謝您的評論。我基本上想要重新定位該組的元素周圍的元素,同時保持其他組元素的位置不變。和我的演示一樣,最終的結果將是整個表按類型分組。 –

回答

1

嘗試this代替(分叉的小提琴) - 在文檔中使用前置方法爲我工作,而不會往下跳。

+0

感謝像你描述的,但我試圖在項目重新定位後的剩餘組項目(通過修改與.insertAfter的DOM) –

+1

這難道不是已經在做,爲了維護被點擊的項目的位置的回覆叉工程?我做了單擊項目藍色更加明顯 - http://jsfiddle.net/wkMUr/3/的位置保持不變,但組中所有其他後追加:也許我還是沒有完全得到你正在找? – hejhi

+0

你就是......!以某種方式錯過了,猜測它只是reloadItems而不是reLayout等,感謝您的幫助! –

1

您會考慮使用不同的插件來做到這一點? 看看:Quick Sand 它的funcionality在於用另一個元素替換一組元素,在我看來,它比同位素簡單得多。

這裏是類似於你想要得到的結果的一個例子: Quick sort example

+0

它看起來像快速沙沒有顯示所有的人,並將他們分組。它擺脫了那些不屬於這個羣體的人。而且我還沒有使用Quick Sand,但它看起來像是JS或Isotope的數量的兩倍或更多。 – tazboy