拖拽事件
HTML 的 drag & drop 使用了 DOM event model
以及从 mouse events
继承而来的 drag events
。一个典型的拖拽操作是这样的:用户选中一个可拖拽的(draggable)元素,并将其拖拽(鼠标不放开)到一个可放置的(droppable)元素,然后释放鼠标。
在操作期间,会触发一些事件类型,有一些事件类型可能会被多次触发(比如drag
和 dragover
事件类型)。
所有的 drag event types 有一个对应的 global event handler。每个拖拽事件类型和拖拽全局属性都有对应的描述文档。下面的表格提供了一个简短的事件类型描述,以及一个相关文档的链接。
事件 | On型事件处理程序 | 触发时刻 |
---|---|---|
drag | ondrag | 当拖拽元素或选中的文本时触发。 |
dragend | ondragend | 当拖拽操作结束时触发 (比如松开鼠标按键或敲“Esc”键). (见结束拖拽) |
dragenter | ondragenter | 当拖拽元素或选中的文本到一个可释放目标时触发(见 指定释放目标)。 |
dragexit | ondragexit | 当元素变得不再是拖拽操作的选中目标时触发。 |
dragleave | ondragleave | 当拖拽元素或选中的文本离开一个可释放目标时触发。 |
dragover | ondragover | 当元素或选中的文本被拖到一个可释放目标上时触发(每100毫秒触发一次)。 |
dragstart | ondragstart | 当用户开始拖拽一个元素或选中的文本时触发(见开始拖拽操作)。 |
drop | ondrop | 当元素或选中的文本在可释放目标上被释放时触发(见执行释放)。 |
注意:当从操作系统向浏览器中拖拽文件时,不会触发 dragstart
和dragend
事件。