Все перетаскиваемые элементы, соответствующие селектору будут приняты. Если функция указанный, функция будет вызываться для каждого перетаскиваемого на страницу (пройденного как первый аргумент функция), чтобы обеспечить пользовательский фильтр. Функция должна возвращать значение true, если draggable должен быть принят.
в сочетании с опцией revert на draggable должен получить то, что вам нужно:
$(".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');
}
});
Обратите внимание, что в этом конкретном примере вы также можете написать accept: ".acceptable", который заставил бы droppable принимать только элементы с классом acceptable. Таким образом, еще один вариант - когда ваше пользовательское событие происходит, просто примените или удалите класс acceptable по мере необходимости.