我正在使用CKEditor的小部件功能来创建我自己的小部件,其中包含一个jquery组件。但是,当拖放窗口小部件时,它会被销毁,并且jquery组件中的所有状态都会丢失。 可以避免这种行为吗?它是可配置的吗?为什么需要(也许CKEditor团队可以回答这个问题)?
答案 0 :(得分:8)
在拖放过程中,小部件被破坏(并重新初始化),这种行为无法避免。
如何将jQuery组件与widget对象链接?您的小部件定义是什么样的? (这是您传递editor.widgets.add()
电话的对象)。您是否使用Widget.setData()
/如何将此jQuery组件设置为窗口小部件数据?
如果你很难回答这些问题,你可以在这里粘贴你的widget实例的源代码(打开浏览器的开发人员工具并查找具有data-cke-widget-id
属性的元素 - 不要混淆CKEditor中的源模式视图)。将其与整个内容粘贴。
小部件将其数据存储在data-cke-widget-data
HTML属性中。一个盲目的猜测是你要么没有在窗口小部件上正确设置数据,要么在它被字符串化然后解析回来时,它不能正确处理jQuery对象。也许你可以使用widget.definition.init
初始化你的jQuery组件并将数据保存为普通对象(Widget.setData
)?
您可能还希望查看CKEditor widget documentation以获取更多信息。