我的应用通过SafeHTMLBuilder创建popUp。我想将Click处理程序(调整onClick)添加到此img。
我知道如果我使用uiBinder,我可以添加ui:field tag:
@UiField
Image
...
image.addClickhandler(...);
在我的情况下,我认为我应该使用JSNI,但我不知道它看起来如何。
SafeHtmlBuilder html = new SafeHtmlBuilder();
html.appendHtmlConstant("<div class=\"detailsPopup\">")
.append(TEMPLATES.image(record.getImageUrl()))
.appendHtmlConstant("</div>")
图片模板
@Template("<img id=\"img\" src=\"{0}\"/>")
SafeHtml image(String url);
答案 0 :(得分:0)
您可以使用Label.wrap()实现这一目标。您的代码看起来像这样(未经过测试)
Element element = new Element(); element.setInnerSafeHtml(html.toSafeHtml()); Label label = new Label(); label.wrap(element); label.addClickHandler....
或者只是像这样使用GwtQuery
$("#detailsPopup").click(new Function() { public boolean f(Event e){ Window.alert("This is GWT code without widget baggage!"); return true; } });