2010-12-12 17 views
8

Korzystam z interfejsu jQuery do łączenia wielu list i pozwalają na przeciąganie i upuszczanie elementów między różnymi listami.Czy istnieje sprytny sposób na uzyskanie sortable target w jQueryUI

W przypadku receive, chcę otrzymać listę że pozycja spadła w. Czy ui.item.parent() poprawny sposób to zrobić, lub tam jest własnością ui lub event który pozwoli mi uzyskać dostęp do tego wprost?


<ul><li>item 1</li></ul> 
<ul><li>item 2</li></ul> 

$('ul').sortable({ 
    connectWith: 'ul', 
    receive: function(event, ui) { 
     var targetList = ui.item.parent(); 
    } 
}); 

Odpowiedz

8

Nie, nie ma bezpośredniego własność nowego rodzica (bo .parent() jest dość łatwe chyba), więc to, co masz jest poprawna. You can view all the ui properties here.

Jeśli chcesz .closest(), drugiego rodzica, itd ... lepiej jest pozostawić interfejs użytkownika cienki, ponieważ wszystkie są dość łatwe do przejścia; oszczędza to również kosztów dostarczania referencji bezpośrednio na obiekcie ui.

+0

Wielkie, dzięki za wyczyszczenie tego. Trochę mnie dręczyło, ale myślę, że to przejdę! – Armand

+0

@ Alison - zapraszamy :) –

6

Od zdarzenia recieve jest wywoływane na liście pobierania, można uzyskać nowego rodzica przez $(this). Lista źródeł jest dostępna pod numerem ui.sender.

$('ul').sortable({ 
    connectWith: 'ul', 
    receive: function(event, ui) { 
     var sourceList = ui.sender; 
     var targetList = $(this); 
    } 
}); 
+0

Śmieszne jednak. ui.sender ma wartość NULL dla metody update(). –

Powiązane problemy