Изменение jQuery draggable helper во время перетаскивания
Я пытаюсь сделать перетаскиваемое изменение помощника на основе контекста, в котором находится перетаскиваемый элемент (указывая, что вы можете удалить элемент, изменив помощника).
У меня в голове было две идеи:
-
Объявите помощник как функцию и верните соответствующий помощник. К сожалению, функция вызывается только один раз, в начале перетаскивания.
-
В случае перетаскивания измените помощника. Это звучит как лучший вариант. Проблема в том, что Я не нахожу, как изменить помощника на определенный элемент DOM (только допустимые значения - "клон", "оригинал" и функция.
Я что-то упускаю или это невозможно ?
2 ответа:
Вы можете получить доступ к помощнику в событии перетаскивания:
$('#list').draggable({helper:'clone'}); $("#list").bind("drag", function(event, ui) { ui.helper.css("background-color", "red"); });
Параметр UI ссылается на перетаскиваемый элемент. пользовательский интерфейс.helper-это экземпляр текущего помощника, который может быть изменен на лету.
В моем случае перетаскиваемый был символом из Adobe Edge, поэтому мне пришлось создать класс для одного из "слоев", которые я мог затем изменить при перетаскивании. Поэтому, когда символ был создан, я сделал это;
drag.$("drag_label").addClass("dragLabel");
Это назначение класса клонировалось бы с помощником (в отличие от данных объекта), а затем внутри перетаскиваемого я мог бы сделать это;
start: function(event, ui) { $(ui.helper).find(".dragLabel").css("color", "#FF0000"); ... },