0
Anchor link = new Anchor("Link");
                link.setStyleName("link");
                link.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        Window.alert("mes");
                    }
                });
                relhtml.setHTML(relhtml.getHTML()+link);

有了这段代码,我的 HTML 可以正确显示,并且锚看起来就像我完全想要的样子,但不会触发事件。你能帮忙吗?

4

1 回答 1

2

当你调用 时setHTML,你绕过了所有的 GWT 架构,只是将普通的 HTML 插入到你的页面中。这就是您的事件处理程序不起作用的原因。

将小部件添加到容器的正确方法是使用add方法族。例如,您可能会说RootPanel.get().add(link).

看起来您正在构建一个 HTML 字符串以一次插入所有内容,但只需调用add每个单独的组件就可以了。

RootPanel root = RootPanel.get();
root.add(link);
root.add(new Button("And this is a button!"));
root.add(whateverOtherWidget);
root.add(new HTML("You can also add arbitrary html with the HTML widget.");
于 2013-07-15T18:47:03.643 回答