JQuery UI可拖动多个恢复选项

JQuery UI Draggable Multiple revert Options

本文关键字:恢复 选项 拖动 UI JQuery      更新时间:2023-09-26

JQuery UI draggable小部件有一个revert选项,它决定在什么情况下被拖动的元素应该恢复到初始位置。

文档指定字符串"invalid"可以提供,在这种情况下,被拖动的元素恢复到其原始位置,如果没有在droppable小部件上掉落。另一个选择是为revert提供一个函数,该函数将决定当拖动停止时小部件是否应该恢复。

在我的情况下,这两种行为我都喜欢;我希望小部件在放置到不可放置的元素上时能够进行恢复,但我还希望执行一些即时自定义验证,如果失败将导致恢复。如何结合这两种功能?

revert是一个函数时,传递给它的第一个参数是它被丢弃的droppablesortable小部件(如果存在),否则是false。例如:

$(elt).draggable({
    revert: function(dropped) {
        var result = false;
        // dropped can safely be typecast to boolean
        // if you want to call jquery functions on it check for "false" first
        result = customLogic || (dropped && $(dropped).is(".valid-droppable-class") ); 
        return result;
    }
});

使用revert:"invalid"相当于使用revert: function(dropped) { return dropped; }