1

所以我想要在一个可拖动对象被还原时执行一段代码,因为它没有被拖放到一个可放置对象上。不幸的是返回“无效”;似乎不起作用,revert 就像 revert:true; 有什么建议我可以解决这个问题吗?

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

2 回答 2

0

hemant 是正确的,revert它不是一个事件,它是一个选项,但它的接受值不是有效/无效,而是true/false

请参阅jquery-ui-draggable 手册,其中指出:

如果设置为 true,则元素将在拖动停止时返回其起始位置。可能的字符串值:“有效”、“无效”。如果设置为无效,则仅当可拖动对象未放置在可放置对象上时才会发生还原。对于有效,它是相反的方式。

于 2011-11-17T16:11:47.533 回答
0

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

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

1)将可拖动对象上的还原选项设置为您想要的任何选项,如下所示:

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

2)在droppable的accept选项上创建一个函数,使用draggable作为参数,并返回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 上测试。

Note: this ALWAYS runs the function, while keeping the "valid/invalid" functionality. To run the function only on a specific case, my guess is that you would have to modify the return value of the accept function.

于 2018-06-22T16:57:40.220 回答