问题 #1708💬 已回答提出于 2019年1月4日作者 charlietoleary0 个反应

StyleManager 事件每次变更都会多次触发

快速解答作者 khbhr

你好, 我也遇到了同样的问题,既然还没解决,可以用去反弹技术来解决。 请查看这个[example](https://davidwalsh.name/javascript-debounce-function)。

阅读下方完整回答 ↓

问题

复制: 在全新安装的GrapesJS中,在演示页面(index.html内)添加一个事件监听器,如下: 'editor.on('component:styleUpdate:width', (model) => { console.log(模型); });问题: 当更改任何元素的“宽度”值时,“model”变量会被多次打印。 当监听“列表”属性,如字体家族、字体权重或显示时,问题似乎更为严重。例如: 'editor.on('component:styleUpdate:font-family', (model) => { console.log(模型); }); 对于这类属性,我注意到在编辑器刚加载时(在任何用户互动之前)事件会多次触发,值更改时也会多次触发。原因: 经过一些调查,我认为问题可能与在 GrapesJS 框架内多次设置属性值有关,以适应撤销管理器 [(Property.js:58)])(https://github.com/artf/grapesjs/blob/dev/src/stylemanager/model/Property.js#L58),尽管我仍无法确定根本原因或提供解决方案。症状: 因此,在某些情况下,开发者很难按预期使用StyleManager事件。例如,如果你想通过.previousAttributes属性监听值从哪里变更,会遇到困难,因为事件会多次触发...

回答(3)

ajumell2020年4月18日

你好,

我也遇到了这个问题。事件即使没有改变宽度,事件依然触发,我在HTML页面添加了以下代码,日志被多次生成。

'editor.on('component:styleUpdate:width', (model) => { console.log(“组件宽度更新:”,型号); });`

我录制了视频证明,链接如下

https://drive.google.com/file/d/1zoTUN-e400YDVPXt2DESAemSL6STh0TU/view?usp=sharing

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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