Tengo un elemento arrastrable con el conjunto helper: 'clone'
, pero cuando clona el elemento, ninguno de los data()
ni los eventos son persistentes en el nuevo elemento.Al clonar un objeto que se puede arrastrar en la interfaz de usuario de jQuery, ¿cómo se pueden transferir los datos y eventos al nuevo elemento?
He intentado varias formas de volver a conectar el data()
, pero parece que no puedo seleccionar tanto el nuevo elemento como el anterior en la misma declaración.
Por ejemplo, puedo seleccionar el elemento inicial en el stop()
evento se pueda arrastrar:
$blah.draggable({
helper: 'clone',
stop: function(ev, ui) {
var oldData = $(ev.target).data('blah');
}
});
y también puedo conseguir el nuevo elemento en el lanzables drop()
evento:
$blah.droppable({
drop : function(ev, ui) {
var $newElement = ui.draggable;
}
});
pero puedo No encuentre una manera de obtener ambos en el mismo evento.
Lo que me gustaría hacer es de alguna manera la transferencia de los datos, por ejemplo:
$newElement.data('blah', $oldElement.data('blah'));
o poner a los datos persistentes, como se hace con $blah.clone(true);
Vuelva a leer su pregunta, 'ui.draggable' no parece ser el nuevo elemento como usted ha mencionado, pero en lugar del original. –
Oye, esto realmente me puso en el camino correcto, porque resulta que el problema era que lo estaba combinando con sortable(), que es donde realmente surgió el problema. Publicando mi solución a continuación. ¡Pero muchas gracias por tu ayuda en este! –
Bueno, si está utilizando ordenable esto puede ser útil: http://stackoverflow.com/questions/5788391/jquery-how-to-update-draggable-clone-id/5864644#5864644 –