gwt - 为 html 元素添加点击处理程序?

标签 gwt

我有一个使用 html 为我预生成的页面,它看起来像一个可滚动的 div 列表,例如:

<html>
  <div id="a">
     <div>Item A</div>
  </div>
  <div id="b">
     <div>Item B</div>
  </div>
</html>

我想在我的入口点方法中获取它们,并为每个添加一个点击处理程序。我不知道该怎么做。我有类似的东西:
public void onModuleLoaded() {
    RootPanel rp1 = RootPanel.get("a");
    rp1.addClickHandler(...); // can't do this.
}

我怎样才能听到对 GWT 中这些项目之一的点击?有没有办法我可以只安装一个全局点击处理程序,然后只观察点击项目的 ID 并对其进行过滤?我不一定需要为每个元素添加一个点击处理程序(如果您有许多需要点击处理程序的元素,我认为文档建议不要这样做),

谢谢

谢谢

最佳答案

我还没有测试过这个,但总体思路是正确的,并且很容易扩展到多个目标元素。您可能希望预先存储 DOM.getElementById() 返回的元素以保持快速。请记住,每个用户事件都会调用 onPreviewNativeEvent(),因此请保持轻松。

Event.addNativePreviewHandler(new NativePreviewHandler() {
    public void onPreviewNativeEvent(NativePreviewEvent event) {
        if (Event.as(event).getTypeInt() == Event.ONCLICK &&
            DOM.isOrHasChild(DOM.getElementById("A"), Element.as(event.getEventTarget()))) {
            // Element 'A' was clicked.
        }
    }
}

关于gwt - 为 html 元素添加点击处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2768961/

相关文章:

java - 在 intellij 12 中找不到 GWT

hibernate 异常 : Could not instantiate dialect class when using HTTPS for GWT

android - PhoneGap(Android)支持不同分辨率

java - 是否有适用于 C++ 和 GWT 并支持结构多态性的数据绑定(bind)解决方案?

java - JSNI Marshal Enum 可以作为字符串吗?

javascript - 从 GWT(和一般的 Javascript)中的 HighCharts 库自定义 Stockchart 范围选择器按钮

gwt - 从 gwt 中的代码触发点击事件

javascript - 调整播放 HTML5 视频的窗口大小

java - 是否可以更改排序中某些符号的优先级(权重)?

java - GWT - 方法的同步返回