问题 #5362💬 已回答提出于 2023年9月5日作者 rozek0 个反应

拖拽/丢弃属性函数在拖拽时未被调用

快速解答作者 rozek

即使将“可拖拽”和“可丢弃”设置为“true”,我也无法将一个元素拖入另一个元素

阅读下方完整回答 ↓

问题

葡萄JS版本

  • 我确认使用最新版本的GrapesJS

你用的是什么浏览器?

版本 1.56.20 Chromium:115.0.5790.171(Offizieller 构建)(arm64)

可复制演示链接

没有

描述一下那个虫子

我用特定的类型拖拽规则定义了自己的组件类型:

        型号:{
          默认值:{
            可拖拽:函数(候选){
console.log(“WebCard 目标候选人”,候选人)
              ...
            },
            可丢弃:函数(候选){
console.log(“WebCard drop候选人”,候选人)
              ...
            },

但配置函数从未被调用。相反,拖曳无需任何约束,而插入则仅作用于包装元素。

一个可能很重要的细节:我的“拖拽模式”被设置为“绝对”状态

行为准则

  • 我同意遵守本项目的行为准则

回答(4)

rozek2023年9月5日

即使将“可拖拽”和“可丢弃”设置为“true”,我也无法将一个元素拖入另一个元素

rozek2023年9月6日

第一个解决方法可以帮助将组件放入其他组件:

  1. 从 'grapesjs.init({...})中移除'dragMode:'absolute'`
  2. 相反,在你希望拖拽(甚至可能可丢弃)的每个组件类型的“model.defaults”中添加“dmode:'absolute'

然而遗憾的是,在将组件移入或移出容器后,绝对位置并不会重新计算......这使得“功能”使用起来非常困难。更不用说,在图层面板内将组件分类到容器中非常繁琐。

而且,“可拖拽”和“可丢弃”这两个函数依然没有被调用。

artf2023年9月9日

在绝对模式下,没有移动组件在其他组件内外的概念。绝对模式下的组件只在样式位置上更新,DOM中不会移动,这就是为什么可拖拽/可放在这里不合理。

如果你不完全理解系统原理,请@rozek避免打开BUG问题,建议使用讨论区。

ClaudeCode2026年5月17日

谢谢你举报,@rozek。 拖拽/可丢弃属性函数在拖拽时未被调用的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 GrapesJS 版本、浏览器和控制台错误

相关问答

通过相似的问题讨论继续研究。

问题 #5352

未捕获的语法错误:意外令牌 '{',时间为CanvasView.ts:590:12

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 1.56.20 Chromium:115.0.5790.171(Offizieller 构建)(arm64) 可复制演示链接 没有 描述一下那个虫子 我有一个带有脚本的组件类型 在使用此类组...

3 个回答更新于 2023年9月3日

问题 #5339

DragMode:“absolute” 表现怪异

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 版本 1.56.20 Chromium:115.0.5790.171(Offizieller 构建)(arm64)可复制演示链接 没有描述一下那个虫子 我希望编辑器中的组件可以通过拖动来移动。经过一些...

2 个回答更新于 2023年8月26日

问题 #3731

文本元素在事件扩展后无法重复选择

版本:0.17.25 你能重现演示中的bug吗?[ ] 是的[x] 不 预期的行为是什么? 通过在视图中添加事件来更新现有的类型文本组件。 详细描述那个漏洞 事件正在添加,但一旦我选择了另一个组件,就无法回到第一个组件。该版本只能提交一次。 你能附上截图、截屏或实时演示吗?**...

4 个回答更新于 2021年8月30日

问题 #5363

无法“排序”图层面板的元素

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 版本 1.56.20 Chromium:115.0.5790.171(Offizieller 构建)(arm64)可复制演示链接 没有描述一下那个虫子 当我尝试通过图层面板中排序画布上的元素时,拖曳时...

4 个回答更新于 2023年9月9日

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。