嗨:我添加了 html 输入并选择了丰富的 qx.ui.basic.Label。我已经向这些 html 控件添加了正确的事件处理程序。我的问题与选项卡事件有关。当我在 html 表单控件中时,qooxdoo 拦截了一个 tab 按键,并将焦点转到下一个 qooxdoo 控件。我需要将焦点保持在我的标签内,准确地说,让浏览器将焦点放在下一个 html 控件上。阅读文档,我尝试过: qx.ui.core.FocusHandler.getInstance().addRoot(label); 然后选项卡按键不会将焦点移出我的标签,但浏览器不会将焦点转移到标签控件内部......有什么建议吗?
问问题
559 次
1 回答
1
是:使用正确的 qooxdoo 表单小部件(例如 qx.ui.form.SelectBox),并停止滥用 qx.ui.basic.Label 作为 HTML 元素的容器。顾名思义,Label 小部件是一个用于保存或多或少短文本的小部件。(这实际上是丹尼尔的回答)。
编辑(根据您的评论):
至于解析,我会让浏览器做到这一点,通过创建一个文档元素,将其 innerHtml 设置为生成的 HTML,然后使用通常的 JS 方法遍历生成的 DOM 树。那应该可以直接进行解析。
至于渲染,我会编写一个小的 DOM 解释器来遍历这棵树,并在此过程中生成 qooxdoo 小部件。如果你知道你在处理什么(标签、文本框、选择框),那应该不会太难。然后将生成的小部件添加到合适的容器中。
于 2010-10-25T20:38:18.477 回答