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

Posted

技术标签:

【中文标题】如何取消 jQuery droppable 的放置动作?【英文标题】:How to cancel a drop action for jQuery droppable? 【发布时间】:2011-06-30 03:32:51 【问题描述】:

我有一个 jQuery UI droppable,它接受 Draggables。如果满足某些条件,我希望不允许放置操作。

如何取消放置操作并执行类似还原操作?

【问题讨论】:

【参考方案1】:

可放置小部件上的accept 选项:

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

结合可拖动的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/

底部有一个切换“可接受性”的链接。

【讨论】:

以上是关于如何取消 jQuery droppable 的放置动作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery UI 中使用 Draggable 和 Droppable 将拖动的 li 添加到可放置的 ui 中?

JQuery EasyUI---Droppable( 放置)

jQuery UI (Droppable):如果 droppable 具有相对/绝对的 css 位置,则可拖动元素不会放置在鼠标指针处

02 Jquery UI Droppable 放置插件

jQuery UI - Droppable 只接受一个可拖动的

jQuery droppable - 在放置时替换元素