Это действительно старый вопрос, но я нашел простой ответ.
Чтобы одновременно запустить функцию и применить параметры «действительный / недействительный» для возврата в перетаскиваемом объекте, выполните следующие 2 шага:
1) Установите опцию возврата на перетаскиваемом элементе.Объект для любого параметра, который вы хотите, например, так:
$("#draggable").draggable({ revert: "valid" /*or invalid*/ });
2) Создайте функцию с опцией принятия в droppable, используя draggable в качестве параметра, и верните true, например, так:
$("droppable").droppable({
accept: function(drag) {
//insert your code here
//you can modify the draggable's properties by using $(drag)
return true;
}
});
Протестировано на JQuery 3.3.1.
Примечание: это ВСЕГДА запускает функцию, сохраняя при этом функциональность «действительный / недействительный».Я предполагаю, что для запуска функции только в конкретном случае вам придется изменить возвращаемое значение функции accept.