Drop () se llama dos veces con Sortable / Droppable

Tengo este código aquí. Aunque tengo dos problemas:

  1. En la función de recepción, ¿cómo podemos obtener el elemento que acaba de caer en el ordenable? ¿No es el que se utilizó para eliminar uno nuevo, sino el que se eliminó en la lista?
  2. Como no pude encontrar eso, decidí usar la función drop (), pero ahora, ¡¿por qué se llama a esa función dos veces ?! ¡No quiero eso!

    $( "#sortable" ).droppable({ activeClass: "ui-state-default", hoverClass: "ui-state-hover", drop: function( event, ui ) { $(ui.draggable).editable(function(value, settings) { return(value); },{ tooltip : "Click to edit" }); } }).sortable({ revert: true, receive: function(event, ui) { $(this).children("li").each(function(index) { $(this).attr("id", "content-" + index); }); } }); 

Tenía curiosidad, así que jugué un poco con esto.

No vi el evento de “recepción” en absoluto en mis pruebas con un dropable en juego. Teniendo en cuenta eso, miré tu código, y parece que quieres configurar la identificación en el que se acaba de soltar. Entonces, armé esto: http://jsfiddle.net/ER5Jd/ – utilícelo para verlo en acción agregando el ID y listando el último ID de los elementos de la lista.
Ordenar y muestra la última última en la lista después de la clasificación. Mi esperanza es que te ayude. Nota: ui.helper en la “gota” es el elemento de ayuda que se está arrastrando alrededor de la pantalla (conjunto de clones que se puede arrastrar), pero el clon real es del que se puede arrastrar.

mi marca:

 
    First
  • oneF
  • twoF
    Second
  • oneS
  • twoS

mi código:

 $('#firstOne .listItem').draggable({ helper: 'clone' }); giveId($('#secondOne'));// initial ids set $("#secondOne").droppable({ activeClass: "ui-state-default", hoverClass: "ui-state-hover", drop: function(event, ui) { $(ui.draggable).clone().css('background-color', 'pink') .attr('id', 'content-' + ($(this).find('.listItem').length + 1)) .appendTo(this).siblings().css('background-color', 'yellow'); showId($(event.target)); }, accept: '#firstOne .listItem' }).sortable({ revert: true, update: function(event, ui) { showId($(event.target)); }, receive: function(event, ui) { alert('receipt'); } }); function giveId(list) { list.find(".listItem").each(function(index) { $(this).attr("id", "content-" + index); }); showId(list) } // show the last items id function showId(list) { list.find('span').text(list.find('.listItem:last').attr('id')); }