JqueryUI draggable/droppable — определить цель перетаскивания, когда перетаскивание недействительно

Я использую перетаскиваемые/удаляемые плагины jquery-ui, и у меня есть следующий сценарий.

Три выпадающие цели (каждая принимает элементы одного типа в зависимости от класса) и несколько элементов (один из трех типов, которые принимаются выпадающими объектами).

Я использую опцию revert для перетаскиваемых и accept для выпадающих.

Все работает нормально по функционалу.

Что мне нужно: определить цель перетаскивания, когда перетаскивание является недопустимым (перетаскивается на перетаскиваемый элемент, который не принимает перетаскиваемый элемент)

В чем проблема: все события droppable fire только тогда, когда перетаскиваемый элемент приемлем для него.

Мне нужна эта информация, чтобы я мог отображать сообщения об ошибках, настроенные для конкретной неправильной цели перетаскивания.

Я действительно не могу понять эту проблему (помимо использования другой системы перетаскивания..), поэтому приветствуются любые указатели/идеи..


person Gabriele Petrioli    schedule 09.08.2013    source источник


Ответы (1)


Настройка функций возврата может быть хорошим началом,

Рабочий пример

$(".draggable1").draggable({
         revert: function (droppableObj) {
             //if false then no socket object drop occurred.
             if (droppableObj === false) {
                 //revert the selector object by returning true
                 alert('Not Dropped');
                 return true;
             } else {
                 //droppableObj was returned,
                 //we can perform additional checks here if we like
                 //return false so that the selector object does not revert
                 return false;
             }
         }
     });

Для получения дополнительной информации см.:
https://stackoverflow.com/a/3418306/1947286
http://www.agilepro.com/blog/2009/12/while-this-functionality-is-built-into.html

person apaul    schedule 09.08.2013
comment
да, это то, к чему я тоже склоняюсь... не используя accept и вручную проверяя, допустим ли droppable в обратном вызове revert.. - person Gabriele Petrioli; 10.08.2013