问题 #710✓ 已解决提出于 2018年1月4日作者 austinbiggs3 个反应

让整个元素都能拖动,而不仅仅是手柄

快速解答作者 artf3

试试类似这样的东西 “''js editor.on('component:selected', () => { const selected = editor.getSelected(); 如果 (!selected || !selected.get('draggable'))) 返回; const el = selected.view.el; 如果(!el.hasCustomEvent) { el.hasCustomEvent = 1; el.addEventListener('mousedown', () => { editor.runCommand('tlb-move') }) } }); ```

阅读下方完整回答 ↓

问题

我正在修改手柄,除了有手柄外,我还希望整个元素都能拖拽。看代码,我猜我只需要在select时给可拖拽的元素附加'tlb-move'命令。

editor.on( 'component:selected' , function( model ) {
	var selected = editor.getSelected();
	瓦尔·德拉格;

如果 (!sel || !sel.get('可拖拽')) {
		console.warn(“该元素不可拖拽”);
		返回;
	}

console.log(“已选中:',已选中);
});

上述代码在选择状态下,将选中的组件写入控制台。从这里开始,我认为需要添加一个用于拖拽的事件监听器,但我尝试用 '.on()' 附加监听器都失败了。有什么建议可以把事件监听器附加到某个选定组件上吗?

回答(3)

👍 最有帮助artf2018年1月4日

试试类似这样的东西 “''js editor.on('component:selected', () => { const selected = editor.getSelected(); 如果 (!selected || !selected.get('draggable'))) 返回; const el = selected.view.el; 如果(!el.hasCustomEvent) { el.hasCustomEvent = 1; el.addEventListener('mousedown', () => { editor.runCommand('tlb-move') }) } }...

Jogai2018年3月20日

我按照你的建议操作,但出现了一个错误:“未捕获的类型错误:无法读取未定义的属性'类型'” editor.on('component:selected', () => { const selected = editor.getSelected(); 如果 (!selected || !selected.get('draggable'))) 返回; const el = selected.view.el; 如果(!el.hasCustomEvent) { el.hasCustomEvent = 1; el.addEventListener('mousedown', () => { editor....

Jogai2018年4月17日

非常感谢你的更新!我还是有点难以正确实现。我举了一个例子: https://codepen.io/anon/pen/vRoRBX 举个例子,就是防止用户做太多事情。大多数元素都被设计成不可拖拽。用户应该能够重新排序。 我在选择和拖拽时遇到了几个问题。以下是我采取的步骤和遇到的问题:点击第2项。问题1:元素没有被选中,只是被高亮显示。点击第1项,现在该项被较粗的高亮显示为选中。点击第2项,选中该项。问题2:1号保持“被选中”状态。拖拽(不先点击)第1项到第3项下方。 问题3:如果你立即拖拽,“被选中”状态不会移动,导致拖动的是数字2而不是数字1。

相关问答

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

问题 #748

组件:移除动作

浏览现有事件时,我很好奇为什么没有“组件:移除”动作? 我采取了通过修改“tlb-delete”动作来触发动作的方法。我猜应该有更好的方法,只是还不太确定具体是什么。

3 个回答更新于 2019年9月18日

问题 #687

在使用 editor.on('component:add',function(){} 更新组件属性后;蓝色盒子的商品不正确。

在使用 editor.on('component:add',function(){} 更新组件属性后; 蓝色方框的物品(指动作图标)不正确。复制图标不应该显示。 ![图片](https://user-images.githubusercontent.com/2859394/34...

3 个回答更新于 2019年9月18日

问题 #701

在编辑器中修改组件会清除模型内容

我想实现的目标: 我在编辑器中拉入的一些组件上有特殊的“data-”属性。当其中一个被修改时,我想获取“data-”属性的值和新内容。我有代码监听组件被修改。当这个事件触发时,我正在查看内容(正在进行中)。然而,当我拿到内容时,它是空的,尽管组件本身并没有...... 问题似乎...

3 个回答更新于 2019年9月18日

问题 #1971

事件触发了对远程存储的先前状态属性

我正在尝试通过以下代码提取图像的“src”更改,并将其存储到远程存储中,方法是使用以下代码 我遇到的问题是,当我第一次更改图像时,主机的存储资源中会显示出想要的输出>image2.jpg 但参数并未受到影响,实际上它没有对参数产生任何触发 第二次把图片改成image1.jpg时...

2 个回答更新于 2020年4月25日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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