1234567891011121314151617181920212223242526 |
- export default {
- bind(el, binding, vnode) {
- el.draggable = true;
- el.addEventListener('dragstart', (event) => {
- event.dataTransfer.setData('text/plain', binding.value);
- el.classList.add('dragging');
- });
- el.addEventListener('dragend', () => {
- el.classList.remove('dragging');
- });
- el.addEventListener('dragover', (event) => {
- event.preventDefault();
- });
- el.addEventListener('drop', (event) => {
- event.preventDefault();
- const draggedIndex = event.dataTransfer.getData('text/plain');
- const droppedIndex = binding.value;
- vnode.context.handleDrop({ draggedIndex, droppedIndex });
- });
- }
- };
|