2012-03-06 6 views
5

Koduję panel zadań z trzema listami i używam sortable, aby przenieść pozycję między nimi. Ale muszę odebrać przedmiot, w którym element został upuszczony. Wiem, że ui.item jest elementem upuszczonym, ale nie wiem, gdzie go upuściłem. Tu jest mój kodu:Pobierz przedmiot/obiekt, w którym element został upuszczony.

$(".column").sortable({ 
    receive: function(event, ui) { 
     /* get the element where ui.item is dropped */ 
    } 
}); 

Wiem, że element będzie żadnego z selektora .column, ale jak wybrać !!!

+0

możliwy duplikat [Czy istnieje sprytny sposób na uzyskanie sortowalnego celu w jQueryUI] (http://stackoverflow.com/questions/4420311/is-there-a-clever-way-of-getting-the-sortable-target -in-jqueryui) – isherwood

Odpowiedz

4

bardzo proste:

alert($(this).attr('id')); //this is element where the item was dropped in 
+0

To wydaje się prawidłowe. Zobacz http://stackoverflow.com/questions/4420311/is-there-a-clever-way-of-getting-the-sortable-target-in-jqueryui. – isherwood

+0

To dość stare pytanie, ale w moim przypadku szukałem tego i wreszcie zrobiłem :). Dzięki – javimaravillas

+0

faktycznie, $ (this) to element, z którego element został przeciągnięty, a nie ten, do którego został upuszczony ... – Mark

6

EDIT - sposobem na to jest, jak to

$("#sortable1, #sortable2").sortable({ 
    connectWith: ".connectedSortable", 
    receive: function(e, ui) { 
     alert(ui.item.closest('ul').attr('id')); 

    } 
}).disableSelection(); 

Oczywiście jeśli wa dostać element obok spadła elementu zrobiłbyś

ui.item.closest('ul') 

skrzypce tutaj http://jsfiddle.net/dKaYM/

+0

Czy chcę przesunąć pozycję w stosunku do tego, co powinienem dodać? – Bhavik