-1

我正在尝试从作为 FocusPanel 小部件的 DataGrid 中拖放一个元素。目标是另一个 DataGrid,它是 DialogBox 中包含的另一个 FocusPanel 的小部件。onDragStart 方法工作正常。我可以使用调试器 (Firefox 53.0) 检查 dataTransfer 对象是否填充了 DragStartEvent 的 setData 方法。在目标一侧,正确调用了 onDrop 方法。问题是 dataTransfer 对象为 null 并且 DropEvent 的 getData 方法返回错误。我不明白为什么 dataTransfer 对象为空。

4

1 回答 1

0

我在阅读 MDN “Drag Operations” 上的 “Performing a Drop” 段落时找到了答案。有一个 js 代码片段,其中 event.preventDefault() 放置在 onDrop 函数的末尾。这引起了我的注意,因为我的 Java 代码在 onDrop() 方法的开头调用了 preventDefault()。我将对 preventDefault() 的调用移到方法的末尾,它可以工作。dataTransfer 不再为 null 并且 getData() 返回正确的信息。

于 2017-04-25T10:17:33.273 回答