У меня есть компонент вида, где я хочу иметь возможность перетаскивать определенные элементы (.draggable
) на другие определенные элементы (.droppable
), например:
Я могу настроить его для элементов c <div>
в mounted()
следующим образом:
mounted(){
$('.draggable').draggable({
revert: true
})
$('.droppable').droppable({
hoverClass: 'drop-hover',
drop: function(){
console.log('-= dropped =-')
}
})
}
...
<div class="droppable">Drop Here</div>
<div class="draggable">Drag Me</div>
<div class="draggable">Drag Me</div>
<div class="draggable">Drag Me</div>
Но когда я хочу сделать это динамически в Vue JS с v-for
, тогда привязки jQuery пользовательского интерфейса теряются:
<div v-for="(item, index) in items">
<div class="droppable">{{ item.name }}</div>
<div v-for="(folder, index) in item.folders" class="draggable">{{ folder.name }}</div>
</div>
Я больше не могу перетаскивать элементы .draggable
.
Насколько я понимаю, jQuery Draggable / Droppable не работает с .on
, так как я подозреваю, что одна из проблем заключается в том, что мои элементы DOM генерируются после инициализации jQuery. Я попытался обернуть мой jQuery код в this.$nextTick(() => { ... })
, но он все еще не работает.
Я также посмотрел на Vue .Draggable , но я хочу, чтобы перетаскивание без одновременное изменение порядка.
Возможно ли объединить jQuery Draggable / Droppable с динамическими c данными в Vue JS?