2012-03-31 10 views
8

Estoy buscando una manera de activar el evento para revertir el estado si algo no se valida, por ejemplo, si el elemento no existe, lo creará desde otra lista, pero si ya existe debe ir a else y devuelve el elemento a su posición original:¿Cómo configurar jquery-ui arrastrable revertir a verdadero si después de una validación decido mover el elemento de nuevo?

$("#catalog ul").droppable({ 
     tolerance: 'fit', 
     activeClass: "ui-state-default", 
     hoverClass: "ui-state-hover", 
     accept: ":not(.ui-sortable-helper)", 
     drop: function(event, ui) { 
      //check if already exists 
      if($(this).find("#"+$(ui.draggable).attr("id")).length==0){ 
       $("<li id="+$(ui.draggable).attr("id")+"></li>").text(ui.draggable.text()).appendTo(this) 
       .draggable({ 
        revert: 'invalid', 
        stop: function(){ 
         $(this).draggable('option','revert','invalid'); 
        } 
       }).droppable({ 
        greedy: true, 
        tolerance: 'touch', 
        drop: function(event,ui){ 
         ui.draggable.draggable('option','revert',true); 
        } 
       }); 
      }else{ 
       //want to make the object go back by setting true to revert 
       return false; 
      } 
     } 
    }) 
+1

No importa, lo encontré después de revisar todo el código. Solo tengo que poner ui.draggable.draggable ('opción', 'revertir', verdadero) dentro del else. Wow estaba intentando esto por casi un día, lol. Simplemente respondiendo mi propia pregunta si alguien presta atención como yo y obtiene el mismo problema. – kenji

+0

kenji, la forma correcta de responder a su propia pregunta (¡lo cual está perfectamente bien en SO!) Es hacerlo literalmente: publique una respuesta a continuación, luego dos días más tarde (SO lo hace esperar), hágala la respuesta aceptada. –

Respuesta

11

gracias Kenji, este hecho funciona:

ui.draggable.draggable('option','revert',true); 

también tuve problemas con esto por un mañana hasta encontrar su puesto, gracias

0
.droppable({ 
    greedy: true 
} 

esta opción es necesariamente también necesita

Cuestiones relacionadas