jQuery sortable obtenir 2 éléments échangés

Je ne trouve pas comment obtenir l'élément de destination avec jQuery UI sortable.

    $("#pages").sortable({
        opacity: 0.6,
        update: function(event, ui) {
            var first = ui.item; //First element to swap
            var second = ???? //Second element to swap
            swapOnServer(first, second);
        }
    });

Toutes les options que j'ai essayé de pointer vers l'élément glissé, mais pas le seul, il est échangé avec: ui.item[0], event.srcElement, event.toElement.

En outre, this points à la LISTE (OL) de l'élément.

Disant deuxième je veux dire suivantes:

Ordre Original:

| 0 | 1 | 2 | 3 |

Nous faites glisser l'élément 1 et déposez-le dans la position 3. Qui va se retrouver avec:

| 0 | 3 | 2 | 1 |

Ainsi, le premier élément est 1 et la deuxième est de 3 (FAUX! Voir ci-dessous).

Mise à JOUR: j'ai réalisé que je l'ai eu tort. L'ordre nouveau dans ce cas.

| 0 | 2 | 3 | 1 |

Suite à ma question n'a pas vraiment de sens. Merci à tous pour l'aide. Je vais marque de vote et de marquer une réponse.

La question est donc comment faire pour obtenir le deuxième élément ici?


LA SOLUTION ACTUELLE (comme il n'y a pas de terme comme permutation dans triable) est ci-dessous. Il utilise le tableau temporaire avec les commandes.

    var prevPagesOrder = [];
    $("#pages").sortable({
        start: function(event, ui) {
            prevPagesOrder = $(this).sortable('toArray');
        },
        update: function(event, ui) {
            var currentOrder = $(this).sortable('toArray');
            var first = ui.item[0].id;
            var second = currentOrder[prevPagesOrder.indexOf(first)];
            swapOnServer(first, second);
        }
    });

Merci,
Dmitriy.

il n'y a pas de "deuxième point" donc, il rend votre question extrêmement floue. Si vous permettant à un utilisateur de prendre et de déposer un élément n'importe où dans la liste, il est simplement en déplaçant l'index pour faire de la place. Seulement si, il le déplace d'un endroit vers le haut ou vers le bas, ne sont que deux des éléments touchés. Mais si il la prend par le haut de la liste, et il tombe après le prochain de trois éléments, ces trois premiers éléments de position sont toutes affectées par le déplacement. Pas de "switch" a eu lieu. Veuillez décrire plus en détail ce que vous avez besoin pour accomplir.
Comment est la swapOnServer méthode?
essayé la solution, semble cette ligne: var second = currentOrder[prevPagesOrder.indexOf(first)]; devrait être var second =prevPagesOrder[currentOrder.indexOf(first)];

OriginalL'auteur Dmytrii Nagirniak | 2010-02-15