0

我需要能够从 中分离节点DOMHorizontalPanel在运行时使用GwtQuery.

我的代码如下所示:

    @PageShown
    public void pageReady() {
        horizontalPanel.add($("#bar1").widget());
        horizontalPanel.add($("#bar2").widget()); 
        horizontalPanel.add($("#bar3").widget());   
    }

哪里#bar1,等。al 已经附加在 DOM 中,我需要做的是这 3 个条应该水平堆放,所以我需要将它们附加到 Horizo​​ntalPanel。

更新:

将 DOM 元素提升到 Panel 后horizontalPanel仍然为空:

<table cellspacing="0" cellpadding="0" data-field="navPanel"><tbody><tr></tr></tbody></table>
4

1 回答 1

1

$("#bar1")应该是一个 gwt-widget,否则widget()gQuery 的方法将返回 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,gQueryWidgets插件还带有其他预定义的方法,例如label() textBox() passwordBox()textArea()。但是您可以编写自己的代码WidgetFactory,通过该方法将任何 dom 元素提升为自定义小部件widgets(WidgetFactory)

无论如何,如果您只想在页面中布局元素,更简单的方法可能是使用 css 而不是将它们包装到小部件中。

于 2013-11-24T08:46:15.597 回答