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

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

Как мне отменить действие кавычки и сделать подобное действие?

Ответы

Ответ 1

Параметр accept для виджета сбрасываемым:

Все перетаскиваемые элементы, соответствующие селектору будут приняты. Если функция указанный, функция будет вызываться для каждого перетаскиваемого на страницу (пройденного как первый аргумент функция), чтобы обеспечить пользовательский фильтр. Функция должна возвращать значение 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 по мере необходимости.

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

В нижней части есть ссылка, которая переключает "приемлемость" на выкл.