Здесь мы говорим о простом перетаскивании элементов внутри одного компонента, а также между разными компонентами и их экземплярами. Информацию о том, как сделать любой элемент перетаскиваемым ищите в соответствующей статье.
У всех компонентов, с которыми вы хотите работать должно быть свойство drag (и у источника, и у целевого компонента). В случае с несколькими экземплярами одного компонента можно указать свойство только одному. Для настройки корректной работы д-н-д между разными компонентами изучите эту статью.
У свойства есть несколько значений:
Related sample: Multi Drag-and-Drop in Tree
Режим multidrag (возможность перетаскивать несколько элементов сразу) активируется через свойство multiselect. Вы можете использовать одну из следующих настроек:
Перемещение нескольких элементов в Treetable
webix.ui({
view:"treetable",
// конфиг treetable
multiselect:true,
drag:true
});
Related sample: List: Drag-and-Drop of items
По своей сути, драг-н-дроп это набор последовательных событий: сначала вы выбираете необходимый элемент, затем перетаскиваете его в нужное место и отпускаете кнопку мыши.
Поэтому компонент-источник и целевой компонент получают следующие события:
События используются для контролирования процесса перетаскивания и его настройки на разных этапах, поэтмоу любое событие может вызвать любую функцию, которые вы свяжите с ним.
Такие функции принимают контекст и нативное событие в качестве аргументов.
нативное событие это событие DOM которое срабатывает при перетаскивании, а контекст это объект со следующими свойствами:
Например, событие onBeforeDrop можно использовать для создания копии перемещаемого элемента в момент, когда пользователь отпустил кнопку мыши, при этом не меняя позиции элемента:
view:"datatable",
drag:true,
on:{
onBeforeDrop:function(context, e){
this.getItem(context.target).title = context.source.innerHTML; // копирование
this.refresh(context.target);
return false; // блокирует логику события по умолчанию (запрещает "бросать" элемент)
}
}
Related sample: Drag-and-Drop from HTML
Читайте подробнее о возможностях событий при перетаскивании элементов.
События драг-н-дроп - как пользоваться событиями при перетаскивании (напр., копировать элементы);
Драг-н-дроп в пределах страницы (Продвинутый уровень) - как сделать Webix компонент или HTML узел перетаскиваемым, а также контролировать каждый аспект перетаскивания;