2013-07-21 12 views
8

Pracuję z jquery ui sortable. Chciałbym uzyskać tablicę sortowania, aby przekazać ją do pliku obsługi podczas zdarzenia drop.Jquery ui sortable drop event

jedna zabawna rzecz znalazłem .. http://jsfiddle.net/7Ny9h/

$(function() { 
    $("#sortable").sortable(); 
    $("#sortable").disableSelection(); 

    $("#sortable li").droppable({ 
     drop: function() { 
      var order = $("#sortable").sortable("serialize", {key:'order[]'}); 
      $("p").html(order); 
     } 
    }); 
}); 

Widząc próbkę, jeśli przeniosę BOX No.2, BOX 2 pozostało z tablicy.

Być może potrzebuję pewnego rodzaju zdarzenia "dropend", ponieważ wydaje się, że zdarzenie drop jquery ui nie liczy się z przeciągniętym i upuszczonym.

Odpowiedz

19

Mogłabym rozwiązać problem z wydarzeniem jQuery UI Sortable stop.

$(function() { 
    $("#sortable").sortable(); 
    $("#sortable").disableSelection(); 

    $("#sortable").sortable({ 
     stop: function() { 
      var order = $("#sortable").sortable("serialize", {key:'order[]'}); 
      $("p").html(order); 
     } 
    }); 
}); 
+0

ta praca robi http://jsfiddle.net/Tncg8/ – Prozi

+0

@Prozi, to dlatego, że robisz to źle. Twój JSfiddle w twoim komentarzu nie zmienia zdarzenia "droppable" na "sortable". Właśnie dlatego zawiodłem, zaktualizowałem JSfiddle dla ciebie tutaj: http://jsfiddle.net/a94fak79/ – hazrpg

+0

Zobacz poniżej odpowiedź @ SoursopTree na bardzo proste rozwiązanie, które działało idealnie dla mnie. –

19

Możesz również użyć update, aby to wykryć.

$("#sortable").sortable({ 
     update: function() { 
      // do stuff 
     } 
    }); 
+1

Jest to najprawdopodobniej lepsza opcja (zamiast "stop"), jeśli szukasz jakiegoś rodzaju wiadomości "na temat sukcesu", zamiast ogólnego "na końcu". – testing123

Powiązane problemy