【发布时间】:2010-06-20 22:19:23
【问题描述】:
假设我有一个具有 ClickHandler 的自定义小部件。示例如下:
public class TestWidget extends Composite {
private static TestWidgetUiBinder uiBinder = GWT
.create(TestWidgetUiBinder.class);
interface TestWidgetUiBinder extends UiBinder<Widget, TestWidget> {
}
@UiField
Button button;
public TestWidget(String firstName) {
initWidget(uiBinder.createAndBindUi(this));
button.setText(firstName);
}
@UiHandler("button")
void onClick(ClickEvent e) {
Window.alert("Hello!");
}
}
当我尝试像这样添加这个小部件时:
TestWidget testWidget = new TestWidget("myTestWidget");
RootPanel.get().add(testWidget);
一切都很好。如果我点击我的按钮,我会收到我期望的消息。 但是,如果我像这样添加它:
TestWidget testWidget = new TestWidget("myTestWidget");
RootPanel.getBodyElement().appendChild(testWidget.getElement());
我的点击事件没有被触发。我正在努力理解为什么。 如果有人可以向我解释这一点或将我链接到我可以阅读的资源,那就太好了。最后,我想知道是否可以在添加子事件之后添加 clickhandler,以及是否推荐这种方式。提前感谢它的帮助。
库库
【问题讨论】:
标签: gwt