UNPKG

@jay-js/system

Version:

A powerful and flexible TypeScript library for UI, state management, lazy loading, routing and managing draggable elements in modern web applications.

18 lines (17 loc) 743 B
export function Draggable(element, { onDragStart, onDragEnd, onDragOver, onDragEnter, onDragLeave, onDrop } = {}) { let draggedItem = null; onDragStart && element.addEventListener("dragstart", (event)=>{ draggedItem = event.target; onDragStart && onDragStart(event); }); onDragEnd && element.addEventListener("dragend", onDragEnd); element.addEventListener("dragover", (event)=>{ event.preventDefault(); onDragOver && onDragOver(event); }); onDragEnter && element.addEventListener("dragenter", onDragEnter); onDragLeave && element.addEventListener("dragleave", onDragLeave); onDrop && element.addEventListener("drop", (event)=>{ onDrop(event, draggedItem); }); }