jQuery draggable revert:function()无法返回“无效”

时间:2011-11-17 14:02:56

标签: jquery draggable jquery-ui-draggable droppable jquery-ui-droppable

所以我想要在恢复拖动时执行一段代码,因为它没有放在droppable上。不幸的是返回“无效”;似乎没有工作,恢复表现得像恢复:真; 有什么建议我可以解决这个问题吗?

revert: function () {
            //do some extra stuff...
            return 'invalid';
            }

2 个答案:

答案 0 :(得分:0)

hemant是正确的,revert不是一个事件,它是一个选项,但其接受的值无效/无效,但真/假

请参阅jquery-ui-draggable manual说明:

  

如果设置为true,则元素将返回其开始位置   拖动停止。可能的字符串值:'valid','invalid'。如果设置为   无效,只有在没有删除拖动时才会发生恢复   在一个droppable上。如果有效,那就是另一种方式。

答案 1 :(得分:0)

这是一个非常老的问题,但是我想出了一个简单的答案。

为了同时运行函数并在可拖动对象中应用还原的“有效/无效”选项,请执行以下两个步骤:

1)将可拖动对象上的还原选项设置为所需的任何选项,例如:

$("#draggable").draggable({ revert: "valid" /*or invalid*/ });

2)使用draggable作为参数在droppable的accept选项上创建一个函数,并返回true,如下所示:

$("droppable").droppable({ 
    accept: function(drag) {
    //insert your code here
    //you can modify the draggable's properties by using $(drag)
    return true;
    }
});

在JQuery 3.3.1上进行了测试

注意:此总是运行该功能,同时保持“有效/无效”功能。要仅在特定情况下运行该函数,我想您将不得不修改accept函数的返回值。