2012-12-21 43 views
0

我得到這個HTML代碼:可排序的GET元素索引

<div id="pages"> 
    <div id="page1"></div> 
    <div id="page2"></div> 
    <div id="page3"></div> 
    <div id="page4"></div> 
</div> 

只是爲了測試我想顯示的排序網格中的元素的索引:

$("#pages").sortable({ 

    sort: function(event,ui){ 
     console.log($('#pages').index(ui.item)); 
    } 
}); 

返回的索引是索引,其中,拖動的元素開始拖動。 如果我在停止/更新事件中移動代碼,我會收到正確的索引。 我的問題是,在拖動視覺通知(其他divs之間翻轉)是索引返回的另一個,我需要更改元素的css邊距。

如何在拖動元素時獲得正確的順序?

TIA frgtv10

回答

3

要訪問你需要使用ui.placeholder項目拖動項目的當前索引。

$("#pages").sortable({ 
    helper: "clone", 
    sort: function(event, ui) { 
     console.log($(ui.placeholder).index()); 
    } 
}); 

jsFiddle here (jQuery 1.8.2, jQueryUI 1.9.2)

+0

感謝您的幫助。如果我需要整個列表,我必須通過元素(每個)並將佔位符索引添加到列表中,是否正確?或者,還有更好的方法? – frgtv10

+0

如果你需要整個列表,是的,你需要用'.each'解析它。 如果你只是用'div'選擇器解析它,佔位符項目就是其中之一。 – Mordhak