En cuanto a la fuente de ui.sortable.js (1.7.2), se puede engañar y establecer el placeholder
a un objeto con una función y una función element
update
. La función element
se usa para devolver el objeto dom marcador de posición y la función update
le permite hacer cosas como corregir su tamaño (puede consultar la función _createPlaceholder
dentro de ordenable si desea ver lo que hace la implementación predeterminada).
Así, por ejemplo, lo siguiente será crear un elemento de la lista con la palabra prueba el interior como su marcador de posición (observe que devuelve el objeto real dom ([0]
) y no el objeto jQuery en sí):
$("#sortable").sortable({
placeholder: {
element: function(currentItem) {
return $("<li><em>test</em></li>")[0];
},
update: function(container, p) {
return;
}
}
});
Si leo la fuente correctamente, la función element
se debe pasar al elemento actual (objeto jQuery) y this
debe apuntar al sortable
en sí (es decir, $("#sortable")
en este caso). En update
se le pasa el "contenedor" que es el objeto que contiene todas las opciones, & el elemento, etc. & el placeholder
sí mismo.
Tenga en cuenta que este es un truco indocumentado, por lo que obviamente sería sin apoyo & puede cambiar con la próxima versión de jQuery UI ... pero todavía puede ser de utilidad para usted, teniendo en cuenta que estaba hablando acerca de la edición ui.sortable.js
directamente de todos modos.
Espero que ayude.
Funciona perfectamente - gracias !! – brahn
Hermoso; si desea hacer un trabajo ordenable cuando desea una altura fija para los elementos mientras arrastra (debido a elementos grandes, por ejemplo), puede usar (en la función de actualización anterior): 'container.refreshPositions();' y eso corrige todo. Whoohoo! – kamranicus
¡Estoy usando este truco ahora para implementar iconos que se pueden arrastrar y que se muestran como el elemento DOM que representan cuando se arrastran sobre la ordenación vinculada! Felicitaciones extra por leer la fuente; Intenté eso y ahora necesito medicamentos. – Altreus