Как отменить действие drop для jQuery droppable?

У меня есть jQuery UI droppable, который принимает перетаскиваемые. Я не хочу допускать действия сброса, если выполняются определенные условия.

Как отменить действие drop и сделать revert как действие?

1 ответов


на accept опция на droppable widget:

все перетаскиваемые объекты, соответствующие селектору будут принимать. Если функция указанная функция будет вызвана для каждого перетаскиваемого на странице (пройдено в качестве первого аргумента функция), обеспечить изготовленный на заказ фильтр. Функция должна возвращать true, если таковым должно быть принято.

в сочетании с 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 только принимать элементы С class acceptable. Таким образом, другой вариант-когда ваше пользовательское событие происходит, просто примените или удалите acceptable класс по мере необходимости.

вот пример:http://jsfiddle.net/andrewwhitaker/rUgJF/3/

внизу есть ссылка переключения "приемлемость" на.