PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #850💬 已回答提出于 2018年2月8日作者 austinbiggs0 个反应

:组件:移动事件

快速解答作者 artf

你试过用 [Components-&-JS](https://github.com/artf/grapesjs/wiki/Components-&-JS)吗?

阅读下方完整回答 ↓

问题

我想实现的目标: 我有一段代码需要在组件“丢弃”时运行。我把“dropped”加引号,因为TLB移动结束时它需要触发。

作为用户,如果我点击工具栏中的移动图标,完成组件移动后,我需要代码启动。我尝试了不少事件都没成功:stop:tlb-move、change:canvasOffset、focus和move-comp;但都没有成功。

我加载的编辑器内容包含一个Flexslider实例(它会创建额外的标记/元素样式),当用户移动Flexslider的容器时,这个实例就会失效。为了解决这个问题,我希望能立即重新初始化滑块,这样它就不会坏掉。

还有其他事件可以用来运行我的代码吗?我避免使用“component:updated”,因为它触发次数太多了。

我还有一个想法,有没有办法在编辑器里更新真实来源?这样它就已经把 HTML 存储在模型里了。

回答(3)

maxtacco• 2018年4月14日

我也遇到同样的问题——我无法确定组件上的某个事件来监听移动结束时的信号。

maxtacco• 2018年4月14日

所以,我唯一能让它合理运行的方法是监听组件模型的 init() 方法中触发的“selectComponent” 事件 https://github.com/artf/grapesjs/blob/b62e032b06f45382849b59e6a3f32049f0a021fc/src/commands/index.js#L168: “JavaScript editor.on('change:selectedComponent', (editor, model) => { 如果 (model === this) { 做点什么...... } }); ``` 如果有专门的移动命令事件,比如move...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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