2010-02-24 14 views
12

Básicamente tengo una lista arrastrable que está conectada con una lista ordenable. Funciona muy bien, excepto que necesito algún tipo de evento Drop que pueda usar para cambiar el elemento de la lista después de su caída en la lista ordenable.Combinar jQuery ordenable y Drop Event

Esto funciona con .draggable -> .droppable, pero ¿hay una solución para draggable -> .sortable?

Respuesta

17

Calculado, resulta que hay un evento de recepción que es lo mismo que soltar para el droppable.

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

Si estoy usando la opción de arrastrar con el ayudante: clonar hay una manera de apuntar a los elementos que estoy eliminando. Cuando uso el ui.item, cambia el elemento anterior, mientras que ui.helper no parece hacer nada. – mike

+0

Tengo el mismo problema. No puedo orientar los artículos que estoy dejando caer. Intenté tanto "detener" en el arrastrable como "recibir" en el ordenable. – rolnn

+0

La única forma en que pude hacerlo con 'clon fue otorgando un nombre de clase al contenedor arrastrable y luego usando jquery para apuntar ese nombre de clase en el contenedor ordenable. – rolnn

6

¿Por qué no usa 2 listas ordenables que están conectadas? A continuación, puede utilizar el evento parada

Puede conectar 2 listas haciendo:

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

Y a continuación, utilizar el evento parada

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

A continuación, puede cambiar el elemento caído al hacer la interfaz de usuario. (no lo sé de memoria pero con el plugin que se puede arrastrar es ui.draggable)