我正在创建一个锚点,如下所示:
Anchor a = new Anchor( "Click Me" );
然后我添加一个点击处理程序:
a.addClickHandler( new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GWT.log("Anchor Clicked");
}
} );
我想将 Anchor 添加到 LI 元素。由于我没有 UL 和 LI 的任何小部件,因此我使用以下构造:
public class ElementPanel extends ComplexPanel {
public ElementPanel(String tagName) {
setElement(DOM.createElement(tagName));
}
@Override
public void add(Widget w) {
add(w, getElement());
}
}
我创建了我的 UL 元素:
ElementPanel ul = new ElementPanel(UListElement.TAG);
我创建了一个 LI 元素:
ElementPanel li = new ElementPanel(LIElement.TAG);
我将 Anchor 添加到 LI,然后将 LI 添加到 UL(之后我添加到文档中):
li.add(a);
ul.add(li);
这工作正常。如果改为按如下方式更改前面的行,则看不到日志消息:
li.getElement().appendChild(a.getElement());
ul.add(li);
同样,如果我尝试这样做,我也看不到消息:
li.add(a);
ul.getElement().appendChild(li.getElement());
以前,我在 UIBinder 中有 UL 元素。但是由于我没有成功地向元素添加点击处理程序,我不得不求助于上述方法。