我有一个jQuery UI droppable,它接受draggables。如果满足某些条件,我想不允许掉落动作。
如何取消放置操作并执行类似操作的恢复?
答案 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/
底部有一个链接可以在关闭状态下切换“可接受性”。