gpt4 book ai didi

java - 使用元素创建时 GWT FocusPanel clickHandler 不工作

转载 作者:行者123 更新时间:2023-11-29 05:20:56 24 4
gpt4 key购买 nike

大家好 GWT 的 friend 们。

在我使用 GWT 时,我遇到了 FocusPanel 不处理添加到它的 clickEvent 的问题。我不以标准方式执行 GWT,即使用 UI Binder 或纯 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 小部件提供的隐藏输入,我会失去什么兼容性?

最佳答案

在元素上添加 DOM ONCLICK 处理程序事件。

示例代码:

final Element desc = RootPanel.get("editCardsSuccess").getElement();
DOM.sinkEvents((com.google.gwt.user.client.Element) desc, Event.ONCLICK);
DOM.setEventListener((com.google.gwt.user.client.Element) desc, new EventListener() {
@Override
public void onBrowserEvent(Event e) {
switch (DOM.eventGetType(e)) {
case Event.ONCLICK:
System.out.println("click");
break;
}
}
});

关于java - 使用元素创建时 GWT FocusPanel clickHandler 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24791691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com