如何取消jQuery droppable的放置操作?

时间:2011-02-18 22:09:49

标签: jquery-ui droppable

我有一个jQuery UI droppable,它接受draggables。如果满足某些条件,我想不允许掉落动作。

如何取消放置操作并执行类似操作的恢复?

1 个答案:

答案 0 :(得分:29)

droppable小部件上的accept选项:

  

与选择器匹配的所有可拖动项   将被接受。如果是一个功能   指定后,将调用该函数   对于页面上的每个可拖动(通过   作为第一个参数   功能),提供自定义过滤器。   如果是,该函数应返回true   应该接受拖拽。

与draggable上的revert选项结合使用可以满足您的需求:

$(".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/

底部有一个链接可以在关闭状态下切换“可接受性”。