gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 21:36:08 24 4
gpt4 key购买 nike

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

app - 主应用程序gwt 库 - 我为可重用的 GWT 组件构建的库Grapesjs - JavaScript 中的拖放 html 编辑器

我围绕grapesjs 库创建了一个gwt 包装器,并且在gwt 库 Playground 中,它运行得很好。但是,当我将此库导入主应用程序时,我发现将 block 拖动到 Canvas 上不起作用。

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

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

然后尝试拖动该元素,控制台日志记录将会触发。好吧,如果您在我的应用程序中执行相同的操作(任何元素,而不仅仅是在葡萄组件中),它就不起作用。因此,拖动事件似乎在全局范围内以某种方式被禁用。至少,这是我最好的猜测。我的最终问题是:

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

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

最佳答案

我终于明白问题出在哪里了。要一般性地回答这个问题,您可以在index.html 中禁用所有方式的拖动事件:

<body ondragstart="return false;" ondrop="return false">
</body>

删除这些属性可以让拖动事件再次正常工作。

关于javascript - GWT 项目中未触发浏览器拖动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58802357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com