使用jqueryui';s可拖动,如何更改停止时的还原?

使用jqueryui';s可拖动,如何更改停止时的还原?,jquery,jquery-ui,events,draggable,jquery-ui-draggable,Jquery,Jquery Ui,Events,Draggable,Jquery Ui Draggable,我想知道您是如何更改jqueryui中从stop事件拖动的内容的“revert”属性的 $('.things').draggable({ revert: "true", stop: function(event, ui){ //if something then set revert to false } }); 我试过一些方法,但似乎无法奏效 干杯。停止事件发生得太晚,对恢复选项

我想知道您是如何更改jqueryui中从stop事件拖动的内容的“revert”属性的

    $('.things').draggable({ 
        revert: "true",
        stop: function(event, ui){
                        //if something then set revert to false
        }
    });
我试过一些方法,但似乎无法奏效


干杯。

停止事件发生得太晚,对
恢复
选项的更改无法影响当前的拖动操作。即使在下一次拖动中不再这样做,可拖动对象仍将恢复

您可能希望绑定到事件:

$('.things').draggable({ 
    revert: true,
    drag: function(event, ui) {
        if (/* something */) {
            $(this).draggable("option", "revert", false);
        }
    }
});

我意识到这个问题提出已经有一段时间了,但是在jQueryUI1.10及更高版本中
draggable
现在支持一个函数作为
revert
的值。如果该值返回true,则位置将恢复,否则不会恢复

$('.things').draggable({ 
    revert: function() {
        if(condition_is_met()) {
             return false; // Don't revert
        } else {
             return true;
        }
    }
});

这是可行的,但我不想在拖拽上附加一些大的处理,在IE和旧的FFs中,拖拽会大大降低速度。在拖拽的生命周期中,是否还有其他东西可以附加到它上,一些预先停止的东西。唉,据我所知,没有。您能否提供更多关于您正在执行的繁重处理的详细信息,以确定
某些内容
?也许有更好的方法来实现你的目标。