微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gwt – 为html元素添加单击处理程序?

我有一个使用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.
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐