Drag-and-drop (DnD) is one of the most widely underestimated and underused features in web applications. Although there are several libraries that enhance the browser's native support and handling of DnD, we are yet to see widespread adoption of this UI interaction magic maker. Using drag-and-drop with a web application can make it a lot easier, user friendly, and more fun, giving users flexibility to easily move, sort, or swap objects that can be very difficult and sometimes ugly to accomplish with buttons or links.
Drag-and-drop operations must have a starting point (such as where the mouse button was clicked, or the start of the selection or element that was selected for the drag), may have any number of intermediate steps (elements that the mouse moves over during a drag or elements that the user picks as possible drop points as he cycles through possibilities) and must either have an end point (the element over which the mouse button was released, or the element that...