¿Hay alguna forma de arrastrar la posición actual del ayudante sobre la nueva posición?
$("#sortable").sortable({ start: function (event, ui) { var currPos1 = ui.item.index(); }, change: function (event, ui) { var currPos2 = ui.item.index(); } });¡Parece que currPos1 y currPos2 tienen el mismo valor cuando ocurre un cambio real!
Lo que necesito lograr es resaltar para el usuario todas las posiciones entre 'iniciar elemento de arrastre' y 'elemento reemplazado actualmente'. Una vez que el usuario suelta el botón del mouse, se actualiza y solo entonces obtengo una nueva posición, pero la necesito antes de soltar el mouse.
$(function() { $('#sortable').sortable({ start: function(event, ui) { var start_pos = ui.item.index(); ui.item.data('start_pos', start_pos); }, change: function(event, ui) { var start_pos = ui.item.data('start_pos'); var index = ui.placeholder.index(); if (start_pos < index) { $('#sortable li:nth-child(' + index + ')').addClass('highlights'); } else { $('#sortable li:eq(' + (index + 1) + ')').addClass('highlights'); } }, update: function(event, ui) { $('#sortable li').removeClass('highlights'); } }); });Esto funciona para mí:
start: function(event, ui) { var start_pos = ui.item.index(); ui.item.data('start_pos', start_pos); }, update: function (event, ui) { var start_pos = ui.item.data('start_pos'); var end_pos = ui.item.index(); //$('#sortable li').removeClass('highlights'); }Use update , stop y receive eventos, compruébelo aquí
¿El evento de actualización clasificable de Jquery solo se puede llamar una vez?