Я пытаюсь создать перетаскиваемый элемент списка, чтобы он отображал дополнительные параметры, такие как редактирование или удаление. Моя идея состоит в том, что если пользователь перетаскивает элемент больше чем x
пикселей и отпускает элемент, все будет отображаться; в противном случае элемент возвращается в исходное положение. Я делаю это, сохраняя начальную позицию left
, когда начинается перетаскивание, а затем вычитая ту же позицию left
, когда она останавливается, поэтому она дает мне количество пикселей, которые перетаскиваемый элемент перемещает влево, и затем использую это решить, вернется ли предмет или нет.
Проблема в том, что я не смог заставить его работать как с использованием функции в опции revert
, так и с установкой условия внутри события stop
.
В настоящее время мой код выглядит так:
var move;
$(".todo-event").draggable({
axis: "x",
start: function (evt, ui) { move = ui.position.left; },
stop: function (evt, ui) { move -= ui.position.left; },
revert: function () { return (move <= 27); }
});
Вычитание работает, но по какой-то причине похоже, что оно не выполняет вычитание до перехода к функции revert
, т. Е. move == 0
внутри функции revert
, а установка тайм-аута не помогает что-нибудь.