2011-02-18 17 views

Respuesta

25

La opción accept en el widget lanzables:

Todos draggables que coinciden con el selector se aceptarán . Si se especifica una función , la función se llamará para cada elemento que se pueda arrastrar en la página (pasó como primer argumento para la función ), para proporcionar un filtro personalizado. La función debe devolver verdadero si el arrastrable debería ser aceptada.

combinado con la opción revert en arrastrable debe conseguir lo que necesita:

$(".draggable").draggable({ 
    revert: 'invalid' 
}); 

$("#droppable").droppable({ 
    accept: function(el) { 
     /* This is a filter function, you can perform logic here 
      depending on the element being filtered: */ 
     return el.hasClass('acceptable'); 
    } 
}); 

Tenga en cuenta que en este ejemplo específico, también podría escribir accept: ".acceptable", lo que haría que la lanzables sólo aceptan los elementos con class acceptable. Entonces, otra opción es cuando ocurre su evento personalizado, simplemente aplique o elimine la clase acceptable según sea necesario.

He aquí un ejemplo: http://jsfiddle.net/andrewwhitaker/rUgJF/3/

La parte inferior tiene un vínculo alternar "aceptabilidad" en un off.

Cuestiones relacionadas