2010-02-24 18 views
12

Fondamentalmente ho un elenco trascinabile che è collegato con una lista ordinabile. Funziona alla grande eccetto che ho bisogno di una sorta di evento Drop che posso usare per cambiare la voce dell'elenco dopo che è stata rilasciata nella lista ordinabile.Combinare jQuery Sortable e Drop Event

Questo funziona con .draggable -> .droppable ma esiste una correzione per draggable -> .sortable?

risposta

17

Calcolato, risulta che vi è un evento di ricezione che equivale al rilascio per il trascinabile.

$('.selector').sortable({ 
    receive: function(event, ui) { ... } 
}); 
+6

Se sto usando il draggable con l'helper: l'opzione clone è un modo per indirizzare gli oggetti che sto rilasciando. Quando uso ui.item cambia il vecchio oggetto, mentre ui.helper non sembra fare nulla. – mike

+0

Ho lo stesso problema. Non riesco a scegliere come target gli oggetti che sto tagliando. Ho provato sia a "fermarsi" sul trascinabile che a "ricevere" su ordinabile. – rolnn

+0

L'unico modo in cui ero in grado di farlo con 'clone' era dando un nome di classe al contenitore trascinabile e poi usando jquery per indirizzare il nome di quella classe nel contenitore ordinabile. – rolnn

6

Perché non utilizzare 2 elenchi ordinabili collegati? Quindi è possibile utilizzare l'evento di arresto

È possibile collegare 2 liste da fare:

$("#sortable1, #sortable2").sortable({ 
     connectWith: '.connectedSortable' 
}).disableSelection(); 

E poi utilizzare l'evento di arresto

$(".selector").sortable({ 
    stop: function(event, ui) { ... } 
}); 

È quindi possibile modificare l'elemento caduto facendo ui. (non lo so a memoria ma con il plugin trascinabile è ui.draggable)