2010-12-12 15 views
8

Sto utilizzando l'interfaccia utente di jQuery per collegare un numero di elenchi e consentire che gli elementi vengano trascinati e rilasciati tra i diversi elenchi.C'è un modo intelligente per ottenere l'obiettivo ordinabile in jQueryUI

In receive evento, voglio ottenere la lista che l'elemento è sceso in veloce. ui.item.parent() il modo corretto per farlo, o c'è una proprietà di ui o event che mi permette di accedere direttamente questo?


<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(); 
    } 
}); 

risposta

8

No, non c'è alcuna proprietà diretta per il nuovo genitore (perché .parent() è abbastanza facile, probabilmente), in modo da quello che hai è corretto. You can view all the ui properties here.

Se si desidera .closest(), il secondo genitore, ecc ... è meglio lasciare l'interfaccia utente snella poiché sono tutti abbastanza facili da attraversare; ciò consente anche di risparmiare le spese di fornitura dei riferimenti direttamente sull'oggetto ui.

+0

Grand, grazie per averlo chiarito. Mi dava fastidio un po ', ma penso che ci passerò sopra! – Armand

+0

@Alison - welcome :) –

6

Poiché l'evento recieve viene chiamato nell'elenco di ricezione, è possibile ottenere il nuovo genitore tramite $(this). L'elenco delle fonti è accessibile tramite ui.sender.

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

Anche se divertente. ui.sender è null sul metodo update(). –

Problemi correlati