我需要能够从DOM
分离节点,并在运行时使用HorizontalPanel
将其附加到GwtQuery
。
我的代码如下所示:
@PageShown
public void pageReady() {
horizontalPanel.add($("#bar1").widget());
horizontalPanel.add($("#bar2").widget());
horizontalPanel.add($("#bar3").widget());
}
#bar1
等等。已经附加在DOM中,我需要做的是这3个条应该水平堆放,所以我需要将它们附加到HorizontalPanel。
更新
将DOM元素提升为Panel后,horizontalPanel
仍为空:
<table cellspacing="0" cellpadding="0" data-field="navPanel"><tbody><tr></tr></tbody></table>
答案 0 :(得分:1)
$("#bar1")
应该是gwt-widget,否则gQuery的方法widget()
将返回null。
但是,您可以使用gQuery将某些dom元素提升为小部件:
// Promote 3 elements attached to the dom to 3 GWT Panel Widgets
$("#bar1, #bar2, #bar3").as(Widgets).panel();
horizontalPanel.add($("#bar1").widget());
horizontalPanel.add($("#bar2").widget());
horizontalPanel.add($("#bar3").widget());
除了panel()
将元素提升为GWT Panel
之外,gQuery Widgets
插件还附带其他预定义方法,例如label()
textBox()
{{1 }和passwordBox()
。但您可以编写自己的textArea()
代码,通过WidgetFactory
方法将任何dom元素提升为自定义小部件。
无论如何,如果您只想在页面中布局元素,更简单的方法就是使用css而不是将它们包装到小部件中。