猿问

浏览器拖动事件未在 GWT 项目中触发

所以我有 2 个项目和一个针对这种情况的第三方应用程序:

app - 主应用程序 gwt 库 - 我为可重复使用的 GWT 组件构建的库葡萄 js - javascript 中的拖放 html 编辑器

我在grapesjs 库周围创建了一个gwt 包装器,在gwt 库游乐场中,它工作得很好。但是,当我将此库导入主应用程序时,我发现将块拖到画布上不起作用。

我尽可能地深入研究,发现浏览器的“拖动”事件没有触发。为了更进一步,我进入了不同网站上的浏览器控制台,能够将拖动侦听器附加到任何元素,并且它们会正确触发。你甚至可以在堆栈上尝试它。只需检查一个元素,更改为具有draggable="true"并附加一个侦听器:

$0.addEventListener($0, (event) => { console.log('drag event firing'); });

然后尝试拖动元素,控制台日志将触发。好吧,如果你在我的应用程序中做同样的事情(任何元素,不仅仅是在葡萄组件中),它就不起作用。因此,似乎在全局级别以某种方式禁用了拖动事件。至少,这是我最好的猜测。我的终极问题是:

什么会导致本机“拖动”事件不会在全局级别(在 GWT 或纯 Javascript 中)触发?

我尝试了 Chrome 和 FF,它们的行为都一样,所以我不认为这是浏览器的问题。我不知道我的哪些代码对此有用,但如果有人问,我可以发布一些内容。


江户川乱折腾
浏览 147回答 1
1回答

哆啦的时光机

我终于弄清楚是什么问题了。要一般性地回答这个问题,您可以在 index.html 中禁用所有形式的拖动事件:<body&nbsp;ondragstart="return&nbsp;false;"&nbsp;ondrop="return&nbsp;false"> </body>删除这些属性可以让拖动事件再次正常工作。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答