2010-12-12 7 views
8

Estoy usando jQuery UI para vincular varias listas y permitir que los elementos se arrastren y suelten entre las diferentes listas.¿Existe alguna manera inteligente de obtener el objetivo clasificable en jQueryUI?

En el caso receive, quiero obtener la lista que el elemento es soltado. ¿Es ui.item.parent() la forma correcta de hacer eso, o hay una propiedad de ui o event que me deja acceder de manera directa?


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

Respuesta

8

No, no hay ninguna propiedad directa para el nuevo padre (porque .parent() es bastante fácil, probablemente), así que lo que tienes es correcta. You can view all the ui properties here.

Si desea .closest(), el segundo elemento primario, etc. ... es mejor dejar la interfaz de usuario delgada ya que son lo suficientemente fáciles de atravesar; esto también ahorra el gasto de proporcionar las referencias directamente en el objeto ui.

+0

Grand, gracias por aclarar eso. Me estaba molestando un poco, ¡pero creo que lo superaré! – Armand

+0

@Alison - bienvenido :) –

6

Dado que se llama al evento recieve en la lista de recepción, puede obtener el nuevo padre por $(this). Se puede acceder a la lista de fuentes a través del ui.sender.

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

Aunque gracioso. ui.sender es nulo en el método update(). –

Cuestiones relacionadas