0

我得到了这个html代码:

<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));
    }
});

返回的索引是被拖动元素在开始拖动时所在的索引。如果我在停止/更新事件中移动代码,我会收到正确的索引。我的问题是,拖动视觉通知(在其他 div 之间翻转)是索引返回的另一个,我需要更改元素的 css 边距。

拖动元素时如何获得正确的顺序?

TIA frgtv10

4

1 回答 1

3

要访问拖动项目的当前索引,您需要使用ui.placeholderitem.

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

jsFiddle 这里 (jQuery 1.8.2, jQueryUI 1.9.2)

于 2012-12-21T09:50:47.043 回答