--- title: DragEvent slug: Web/API/DragEvent tags: - API - DragEvent - Reference - drag and drop translation_of: Web/API/DragEvent ---
{{APIRef("HTML Drag and Drop API")}}

The DragEvent interface is a {{domxref("Event","DOM event")}} that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way.

This interface inherits properties from {{domxref("MouseEvent")}} and {{domxref("Event")}}.

Properties

{{domxref('DragEvent.dataTransfer')}} {{readonlyInline}}
The data that is transferred during a drag and drop interaction.

Constructors

Although this interface has a constructor, it is not possible to create a useful DataTransfer object from script, since {{domxref("DataTransfer")}} objects have a processing and security model that is coordinated by the browser during drag-and-drops.

{{domxref("DragEvent.DragEvent", "DragEvent()")}}
Creates a synthetic and untrusted DragEvent.

Event types

{{event('drag')}}
This event is fired when an element or text selection is being dragged.
{{event('dragend')}}
This event is fired when a drag operation is being ended (by releasing a mouse button or hitting the escape key).
{{event('dragenter')}}
This event is fired when a dragged element or text selection enters a valid drop target.
{{event('dragexit')}}
This event is fired when an element is no longer the drag operation's immediate selection target.
{{event('dragleave')}}
This event is fired when a dragged element or text selection leaves a valid drop target.
{{event('dragover')}}
This event is fired continuously when an element or text selection is being dragged and the mouse pointer is over a valid drop target (every 50 ms WHEN mouse is not moving ELSE much faster between 5 ms (slow movement) and 1ms (fast movement) approximately. This firing pattern is different than {{Event("mouseover")}} ).
{{event('dragstart')}}
This event is fired when the user starts dragging an element or text selection.
{{event('drop')}}
This event is fired when an element or text selection is dropped on a valid drop target.

GlobalEventHandlers

{{domxref('GlobalEventHandlers.ondrag')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('drag')}} event.
{{domxref('GlobalEventHandlers.ondragend')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('dragend')}} event.
{{domxref('GlobalEventHandlers.ondragenter')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('dragenter')}} event.
{{domxref('GlobalEventHandlers.ondragexit')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('dragexit')}} event.
{{domxref('GlobalEventHandlers.ondragleave')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('dragleave')}} event.
{{domxref('GlobalEventHandlers.ondragover')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('dragover')}} event.
{{domxref('GlobalEventHandlers.ondragstart')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('dragstart')}} event.
{{domxref('GlobalEventHandlers.ondrop')}}
A {{domxref('GlobalEventHandlers','global event handler')}} for the {{event('drop')}} event.

Example

An Example of each property, constructor, event type and global event handlers is included in their respective reference page.

Specifications

Specification Status Comment
{{SpecName("HTML WHATWG", "#dragevent", "DragEvent")}} {{Spec2("HTML WHATWG")}}  
{{SpecName("HTML5.1", "editing.html#the-dragevent-interface", "DragEvent")}} {{Spec2("HTML5.1")}} Initial definition

Browser compatibility

{{Compat("api.DragEvent")}}

See also

{{page("/en-US/docs/Web/API/DataTransfer", "See also")}}