w3schools sortable examples example ejemplos drop and jquery-ui revert jquery-draggable

jquery ui - sortable - Agregar una función a jQuery arrastrable revertir "evento"



jquery draggable sortable (2)

Lo que tengo:

Tengo un div arrastrable con un conjunto de parámetros de reversión como "inválido".

Lo que necesito:

Cuando ocurre la reversión, deseo activar un cambio de CSS a otro elemento.

El problema:

"revertir" es un parámetro en lugar de un evento, por lo que tengo una gran dificultad para activar el cambio de CSS requerido cuando se produce la reversión.

Mi código:

$(''#peg_icon'').draggable({ revert: ''invalid'', scroll: false, stack: "#peg_icon", drag: function(event, ui) { $(''#peg_icon'').css(''background-image'',''url(images/peg-icon-when-dragged.png)''); } });

Lo que he intentado:

Intenté sin éxito utilizar "revertir" como un evento:

revert: function(event, ui) { $(''#peg_icon'').css(''background-image'',''url(images/peg-icon-default.png)''); },

También he intentado sin éxito obtener el parámetro de revertir para tomar esta función:

function(socketObj) { //if false then no socket object drop occurred. if(socketObj === false) { //revert the peg by returning true $(''#peg_icon'').css(''background-image'',''url(images/peg-icon-default.png)''); return true; } else { //return false so that the peg does not revert return false; } }

Contexto:

Estoy arrastrando un div que cuando se arrastra, la imagen de fondo cambia y cuando el arrastre se revierte, la imagen de fondo se restaura a su estado original.

Mi pregunta:

¿Cómo disparo un cambio de CSS a otro elemento cuando se produce la reversión en un arrastre?


Quieres hacer algo como esto:

$(''#peg_icon'').draggable({ revert: function (socketObj) { if (socketObj === true) { // success return false; } else { // reverting return true; } }, scroll: false, stack: "#peg_icon", drag: function(event, ui) { $(''#peg_icon'').css(''background-image'',''url(images/peg-icon-when-dragged.png)''); } });

DEMO: http://jsfiddle.net/yTMwu/35/

¡Espero que esto ayude!


Resulta que revertir puede aceptar un método. Vea esto para un ejemplo completo: http://jsfiddle.net/mori57/Xpscw/

Específicamente:

$(function() { $("#ducky").draggable({ revert: function(is_valid_drop){ console.log("is_valid_drop = " + is_valid_drop); // when you''re done, you need to remove the "dragging" class // and yes, I''m sure this can be refactored better, but I''m // out of time for today! :) if(!is_valid_drop){ console.log("revert triggered"); $(".pond").addClass("green"); $(this).removeClass("inmotion"); return true; } else { $(".pond").removeClass("green"); $(this).removeClass("inmotion"); } }, drag: function(){ // as you drag, add your "dragging" class, like so: $(this).addClass("inmotion"); } }); $("#boat").droppable({ drop: function( event, ui ) { $(this) .addClass("ui-state-highlight"); } }); });

Espero que esto ayude ... Supongo que lo que sea que intentaste modificar fue el problema, no el intento de usar revertir con una llamada a función. Eche un vistazo nuevamente a qué CSS estaba tratando de establecer, y vea si tal vez su problema estaba ahí.