我正在尝试将RaphaelJS论文嵌入到 qooxdoo 小部件中。RaphaelJS 是一个用于 JavaScript 的 SVG 绘图库,它需要<div>
在任何绘图之前绑定到 HTML。为此,我调用new qx.ui.embed.Html("<div id='raphael'></div>"
) 并将其添加到我的小部件中。之后,我应该通过将 div ID 传递给 Raphael 来初始化它。
问题是在构造函数调用<div id='raphael'>
之后没有提交给 DOM 模型(即,没有创建真正的 DOM 元素) 。qx.ui.embed.Html()
DOM 元素的创建确实推迟到小部件被绘制到屏幕上。我已经设法appear
为小部件捕获了一个事件,之后,元素的存在得到保证,我可以初始化 Raphael 库并进行一些绘图。
这种方法假定我必须从该appear
事件处理程序中运行我的所有应用程序逻辑,这可能不是我想要的。是否有任何其他方法可以在主应用程序流程中使小部件处于可绘制状态?