【发布时间】:2014-09-07 15:00:32
【问题描述】:
大家好,GWT 各位。
在我使用 GWT 时,我遇到了 FocusPanel 无法处理添加到其中的 clickEvent 的问题。我不使用标准方式执行 GWT,即使用 UI 活页夹或纯 Java 代码小部件构建 GUI。我的主机 GWT HTML 文件是 1 个大文件,其中包含代表内容“页面”的 div 标签。我使用 GWT 来控制 DOM。
我将这个 HTML 导入为 FocusPanel 的内容。
<div id="editCardsResponses">
<div id="editCardsSuccess" class="success-box clickable">
<span id="editCardsSuccessLabel">Your card was successfully deleted/edit/added.</span>
<span class="glyphicon glyphicon-remove"></span>
</div>
...
</div>
这是代码...
RootPanel editCardsSuccess = RootPanel.get("editCardsSuccess");
FocusPanel editCardsSuccessPanel = new FocusPanel(editCardsSuccess);
editCardsSuccessPanel.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
hideWidget(editCardsSuccessPanel);
}
});
在我这样做之前它不起作用......
final HTMLPanel editCardsSuccess = view.getEditCardsSuccess();
editCardsSuccess.addDomHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
hideWidget(editCardsSuccess);
}
}, ClickEvent.getType());
我什至尝试将 FocusPanel 添加到父 DIV,认为 FocusPanel 没有附加到 DOM,但这也没有用。
RootPanel.get("editCardsResponses").add(editCardsSuccessPanel);
我想使用 FocusPanel,因为 GWT 想要在 DOM 中添加一个隐藏的输入,以及它包装的元素。我假设隐藏的输入处理了一些跨浏览器问题,如果我只使用 domHandler 方法可能会丢失。
谁能帮助解释为什么 FocusPanel.ClickHandler 不会生效,但附加的 domHandler 会?
如果 DOM 附件是问题,有没有办法重新附加已分离的元素/小部件?
如果我采用 domHandler 方式...如果没有获得 GWT FocusPanel 小部件提供的隐藏输入,我会失去什么兼容性?
【问题讨论】:
标签: java dom gwt dom-events