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

问题 #3392💬 已回答提出于 2021年4月7日作者 rywilson280 个反应

Allow dynamic droppable configuration using a function

快速解答作者 rywilson28

相关公关:https://github.com/artf/grapesjs/pull/3393

阅读下方完整回答 ↓

问题

我有一个要求,不能用选择器来判断某个元素是否可以丢弃。 例如: ![图片](https://user-images.githubusercontent.com/45426659/113861790-96afbf00-9775-11eb-9369-2a18a71c0dd6.png) “子”组件必须位于“父”组件中,但如果子组件包含 ref 属性,只能将其拖入与当前父组件匹配的 ref 值的其他父容器中。 根据上述标记,子组件可以丢弃到最后一个容器,但不能丢弃参考为5678的容器。 不过,第二个子元素可以被丢弃到任一父组件中。 如果可丢弃函数允许以下函数,这将很容易实现: 可掉落:(src,目标)=> { 一些逻辑 返回真值; }, 这需要对分拣器进行相当简单的更改: 检查目标是否能接受源 让 droppable = trgModel.get('droppable'); 如果(typeof droppable === '函数') { 设 res = 可掉落(src, trg); result.droppable = res; result.dropInfo = res; 可丢弃 = res; } 否则 { 现有逻辑

回答(3)

rywilson28• 2021年4月21日

@artf对这个功能或PR的做法有任何疑问吗?

GJSBlock• 2026年5月17日

谢谢你举报,@rywilson28。 关于FEAT:允许使用函数动态丢弃配置的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一个插件,扩展编辑器并具备此功能 正式宣布: 如果此功能能惠及更多用户,考虑在 GrapesJS 仓库...

相关问答

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

问题 #3447

Javascripts are not working due to encoding issue

1 - 我复制了打字文本组件代码,而不是演示HTML代码; 2 - 并增加了allowScripts:1; 你可以在这里看到示例:http://bashworld.ru/demo.html 点击 查看代码,我们会看到许多 JS 编码字符。 我该如何解决这个问题?我需要解码所有...

4 个回答更新于 2021年5月22日

问题 #3486

专长:能够将所有边距、填充等属性合并更改

你好,目前 grapesjs 内置了属性,比如边际、填充,允许用户逐一更改每个属性(margin-top、margin-bottom等)。 如果能同时更改所有这些属性会很不错。比如说,有个锁定按钮,启用后会同时更改所有属性,而不是一个一个。它可能看起来像这样: ![图片](ht...

2 个回答更新于 2021年6月12日

问题 #3561

Enhanced Shadow DOM Support

你想给GrapesJS添加什么? 更好的 Shadow DOM 支持,允许开发者在 Shadow 元素中渲染 GrapesJS,而无需在配置中专门传递元素而非选择器。 详细描述你的功能需求详细 当前使用元素选择器时,GrapesJS 仅使用文档查询选择器。在渲染阴影DOM时,这...

4 个回答更新于 2021年7月21日

问题 #3345

面板和按钮部分,入门时无法使用 Vue.js

我正在努力让 grapejs Vue.js工作,但没有成功,我跟着入门程序操作,但还是没能正常工作。到目前为止,我已经把它添加到了 mounted() 部分,并且已经设置了一些带方块的按钮,可以显示并添加,但 [面板和按钮部分](https://grapesjs.com/doc...

4 个回答更新于 2021年4月7日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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