2012-07-23 46 views
1

我正在使用Masonry + jQuery Sortable重新設計一個3x3網格,您可以在下面看到。jQuery:砌體+可排序的重新排序網格

enter image description here

$('#container').masonry({ 
     itemSelector: '.element', 
     isResizable: true, 
     columnWidth: 100 
    }) 

用戶能夠在div S(1-4)進行排序,並給他們一個新的秩序。 拖動div 1到右上角的位置將重新排列網格,但不是如預期的那樣。排序它新的之後,它看起來就像這樣:

enter image description here

我想用添加事件啓動/停止/改變可排序這樣...

change: function(event, ui) { 
       ui.item.parent().masonry('reload'); 
     } 

...將重新排序網格的方式2,3,4頂部,並低於div 1.但它看起來像上面的截圖。

有人可以幫我做這個預期的行爲嗎? 我使用砌體錯了嗎?


編輯: reload後DOM返回div 2,3,1,4 我預期2,3,4,1


TIA frgtv10

回答

1

我想,我不完全確定,基於DOM元素的順序的砌體訂單元素。當用戶拖動一個元素時,你是否重新排序DOM?如果沒有,當石匠重新加載時,該命令仍然會顛倒前一個。

+0

我也嘗試過'.masonry('reloadItems')',這將'重新收集DOM中當前順序的所有項目元素。但是這也行不通。你到底什麼意思?重新排序後,DOM是否錯誤? – frgtv10 2012-07-23 09:11:57

+0

如何根據需要重新排序DOM? – frgtv10 2012-07-23 09:19:07

+0

div 1的寬度是多少?所有的div都有相同的寬度? – bingjie2680 2012-07-23 09:43:58