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

ドラッグされたアイテムの現在のインデックスにアクセスするには、item を使用する必要がありui.placeholderます。

$( "#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 に答える