所以我想要在一个可拖动对象被还原时执行一段代码,因为它没有被拖放到一个可放置对象上。不幸的是返回“无效”;似乎不起作用,revert 就像 revert:true; 有什么建议我可以解决这个问题吗?
revert: function () {
//do some extra stuff...
return 'invalid';
}
所以我想要在一个可拖动对象被还原时执行一段代码,因为它没有被拖放到一个可放置对象上。不幸的是返回“无效”;似乎不起作用,revert 就像 revert:true; 有什么建议我可以解决这个问题吗?
revert: function () {
//do some extra stuff...
return 'invalid';
}
hemant 是正确的,revert
它不是一个事件,它是一个选项,但它的接受值不是有效/无效,而是true/false。
请参阅jquery-ui-draggable 手册,其中指出:
如果设置为 true,则元素将在拖动停止时返回其起始位置。可能的字符串值:“有效”、“无效”。如果设置为无效,则仅当可拖动对象未放置在可放置对象上时才会发生还原。对于有效,它是相反的方式。
这是一个非常古老的问题,但我想出了一个简单的答案。
为了同时运行函数并在可拖动对象中应用还原的“有效/无效”选项,请执行以下 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.