【问题标题】:What's the difference between logical events and native events in GWT?GWT 中的逻辑事件和原生事件有什么区别?
【发布时间】:2010-11-04 02:58:31
【问题描述】:

我注意到有两种方法可以将事件处理程序连接到 GWT 小部件:addHandler 和 addDomHandler。 addDomHandler 的 JavaDoc 说:“将本机事件处理程序添加到小部件并接收相应的本机事件。如果您不想接收本机事件,请改用通用 addHandler 方法。”

如果有人能告诉我本地事件和逻辑事件之间的区别,我将不胜感激。

【问题讨论】:

    标签: events browser gwt event-handling


    【解决方案1】:

    本机事件由浏览器直接触发 - 点击、鼠标悬停、按键等事件。要在 Widget 上接收这些事件,您必须专门接收事件。

    通用事件,嗯,更通用。例如,我创建了一个 SaveEvent 和一个 DeleteEvent 供我自己使用,它们在满足某些 UI 条件时被触发。它们离浏览器更远,永远不会被浏览器直接触发。我认为您应该尽可能坚持使用更通用的事件。另一方面,如果您正在创建一个无法用其他小部件制作的自定义小部件 - 例如,如果您想构建一个用户可以单击和拖动的滑块 - 您将需要 DOM 事件。

    【讨论】:

    • “您必须专门处理事件”是什么意思?你如何让它们沉没?
    • 您在 UIObject (google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/…) 中调用 sinkEvents。完成此操作后,您的小部件的 onBrowserEvent 将被相关事件触发。例如,如果您接收鼠标事件,那么当您的小部件发生原生鼠标事件时,onBrowserEvent 将被触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2014-03-12
    • 2011-02-11
    相关资源
    最近更新 更多