使用Jquery ui draggable,你如何更改停止时的恢复?

时间:2011-08-14 11:25:35

标签: jquery jquery-ui events draggable jquery-ui-draggable

我想知道你是如何改变Jquery ui从停止事件中拖动的东西的“revert”属性。

    $('.things').draggable({ 
        revert: "true",
        stop: function(event, ui){
                        //if something then set revert to false
        }
    });

我尝试过一些东西,但似乎无法让它发挥作用。

干杯。

2 个答案:

答案 0 :(得分:4)

stop事件发生得太晚,无法更改revert选项以影响当前拖动操作。即使在下一次拖拽中它不再这样做,拖拽仍然会恢复。

您可能希望绑定到drag事件:

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

答案 1 :(得分:3)

我知道这个问题已经有一段时间了,但是在JQuery UI 1.10及以上draggable现在支持一个函数作为revert的值。如果该值返回true,则返回该位置,否则不会。

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