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.