【发布时间】:2020-03-07 04:47:09
【问题描述】:
所以对于这种情况,我有 2 个项目和一个第三方应用程序:
app - 主应用 gwt library - 我为可重用的 GWT 组件构建的库 grapesjs - javascript 中的拖放式 html 编辑器
我在grapesjs 库和gwt 库操场上创建了一个gwt 包装器,它工作得很好。但是,当我将此库导入主应用程序时,我发现将块拖到画布上不起作用。
我尽可能多地对此进行了研究,发现浏览器的“拖动”事件没有触发。为了更进一步,我进入了不同网站的浏览器控制台,并能够将拖动侦听器附加到任何元素,它们会正常触发。你甚至可以在堆栈上尝试它。只需检查一个元素,更改为 draggable="true" 并附加一个监听器:
$0.addEventListener($0, (event) => { console.log('drag event firing'); });
然后尝试拖动元素,控制台日志将触发。好吧,如果你在我的应用程序中做同样的事情(任何元素,不仅仅是在葡萄组件中),它就不起作用。因此,似乎拖动事件在全球范围内以某种方式被禁用。至少,这是我最好的猜测。我的终极问题是:
什么会导致本机“拖动”事件不在全局级别(在 GWT 或纯 Javascript 中)触发?
我尝试了 Chrome 和 FF,它们的行为相同,所以我不认为这是浏览器问题。我不知道我的代码对此有何用处,但如果有人问,我可以发布一些内容。
【问题讨论】:
-
我认为这个问题与
java无关。考虑删除标签。 -
GWT 是一个 Java 框架,解决方案可能是 java 代码,所以这就是我包含它的原因。
-
你能分享一些代码来显示这在小型 GWT 应用程序中不起作用吗?只是一个入口点和你写的一些包装?
标签: javascript java gwt