С помощью перетаскиваемого Jquery UI, как вы можете изменить возврат на остановке? - PullRequest
5 голосов
/ 14 августа 2011

Мне было интересно, как вы изменили свойство "вернуть" что-то, что перетаскивается в пользовательском интерфейсе Jquery из события stop.

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

Я пробовал несколько вещей, но, похоже, не могу заставить его работать.

Приветствие.

Ответы [ 2 ]

4 голосов
/ 14 августа 2011

Событие stop происходит слишком поздно, чтобы изменения параметра revert влияли на текущую операцию перетаскивания.Перетаскиваемый объект будет по-прежнему возвращаться, даже если в следующих перетаскиваниях он больше не будет.

Возможно, вы захотите вместо этого связать с событием drag :

$('.things').draggable({ 
    revert: true,
    drag: function(event, ui) {
        if (/* something */) {
            $(this).draggable("option", "revert", false);
        }
    }
});
3 голосов
/ 25 августа 2015

Я понимаю, что прошло много времени с тех пор, как был задан этот вопрос, но в JQuery UI 1.10 и выше draggable теперь поддерживает функцию как значение для revert. Если значение возвращает true, тогда позиция меняется на противоположную, иначе это не так.

$('.things').draggable({ 
    revert: function() {
        if(condition_is_met()) {
             return false; // Don't revert
        } else {
             return true;
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...