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

问题 #5316💬 已回答提出于 2023年8月17日作者 BenKhz0 个反应

编辑者未订阅选择器:移除

快速解答作者 artf

你好,@BenKhz之所以这样,是因为“selector*”事件与全局Selectors容器有关(当你从组件中移除选择器时,Selector本身仍然存在,因为它可以在其他地方使用),如果你想跟踪组件选择器的变化,必须使用'component:update:classes'事件

阅读下方完整回答 ↓

问题

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome v115.0.5790.170可复制演示链接 https://jsfiddle.net/BenKhz/yfwqc6mu/1/ 引用[此处文档](https://grapesjs.com/docs/api/selector_manager.html#available-events)描述一下那个虫子开放式提供的小提琴 [此处](https://jsfiddle.net/BenKhz/yfwqc6mu/1/)在 Canvas 上选择一个组件,并通过选择器管理器添加类别。(add 和 update 事件将被捕获)从类管理器中移除一个类editor.on('selector', () =>{}) 的事件监听器无法执行。 预期的行为是什么? 预计移除职业会触发 selector:remove 事件 目前的行为是什么? Editor.on 没有看到选择器管理器的任何移除事件。参考文档,捕集所有事件的“选择器”只看到 add 和 update ,但从未看到 remove 事件。 我可能误解了这些事件的目的;如果是这样,能否提供澄清或解决办法?尝试在移除特定类时触发所有组件的自定义行为。 感谢你们所有的付出。真是个很棒的项目!🚀行为准则[X] 我同意遵守本项目的行为准则

回答(3)

artf• 2023年8月25日

你好,@BenKhz之所以这样,是因为“selector*”事件与全局Selectors容器有关(当你从组件中移除选择器时,Selector本身仍然存在,因为它可以在其他地方使用),如果你想跟踪组件选择器的变化,必须使用'component:update:classes'事件

BenKhz• 2023年8月28日

啊!我误会了。谢谢你的澄清。继续加油!

GJS Helper• 2026年5月17日

感谢你举报这个问题并对GrapesJS的善意评价!你提到了一个关于GrapesJS事件的常见困惑点,这是个很好的问题。 根本原因解释 selector:remove事件,正如选择器管理器的GrapesJS API所述,当选择器管理器的全局可选集合中移除Selector模型时触发。这与从特定组件中移除类(由Selector模型表示)不同。 当你通过界面向组件添加类时,如果该类(例如my-class)在选择器管理器的集合中还没有作为Selector模型存在,GrapesJS会为它创建一个新的Selector模型并将其添加到集合中。这个操作会触发selector:add(因此你的editor.on...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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