当HTML5拖动操作在另一个窗口上结束时,在目标窗口中触发Drop
事件,并在源窗口中的拖动元素上触发DragEnd
事件。
对于复制和移动,放置目标将使用e.dataTransfer
携带的数据执行复制操作,对于移动操作,必须在源窗口中删除该项目。
当事件在源窗口中触发时,DragEnd
处理程序应该如何确定操作是以丢弃方式达到最终还是中止?
仅知道是否正在进行复制或切割操作是不够的;只有在目的地成功时,剪切操作才会从源中删除该项。如果你愿意,那就是交易。
答案 0 :(得分:1)
我找到了answer in mdn。点击链接并向下滚动到完成拖动部分。遗憾的是,此信息既不在DragEnd
也不在DataTransfer
文档页面中。
拖动完成后,会在拖动源(与接收dragstart事件相同的元素)处触发dragend事件。此事件将触发[是否]拖动成功[或]取消。但是,您可以使用dropEffect属性来确定发生了什么丢弃操作。
如果在dragend期间dropEffect属性的值为none,则拖动被取消。否则,效果指定执行了哪个操作。在移动操作之后,源可以使用此信息从旧位置移除拖动的项目。
对句子结构和语法的强调和修复是我的。
Safari 8完全坏了。它总是报告“无”作为放置事件中的放置效果。