- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
浏览器事件到底是什么?例如,如果我有一个自定义小部件,其中包含一个覆盖 onBrowserEvent 的按钮。并且 onBrowserEvent 方法仅在您单击按钮时被调用。我认为这个事件是为所有事件调用的,例如 onMouseOver、onMouseOut、KeyPressed 等......
此外,当您添加 DomHandler 以使小部件监听默认情况下不支持的事件时。在文档中它说“向小部件添加 native 事件处理程序并接收相应的 native 事件”在这种情况下, native 事件是什么意思?
谢谢
最佳答案
GWT 有一个沉没事件的概念。所有沉没事件,但只有那些,被传递给 EventListener
的onBrowserEvent
.
在最低级别,您附加一个 EventListener
到 Element
使用 DOM.setEventListener
并使用 DOM.sinkEvents
接收事件(或最近 DOM.setBitlessEvents
)。为避免内存泄漏(尤其是——如果不仅是——在旧 IE 中),您必须确保设置了 Element
的EventListener
至null
在页面卸载之前。
一个 Widget
是 EventListener
并为您处理其中一些事情:它会自动调用 DOM.setEventListener
在其onAttach
和 onDetach
,并且它会跟踪沉没事件:它的 sinkEvents
是添加剂以使其更易于使用,因此具有 unsinkEvents
对方。
后来,在 GWT 1.6 中,添加了事件处理程序,并且 addDomHandler
(以及最近的 addBitlessDomHandler
)自动调用 sinkEvents
具有适当的值(取自作为参数传递的 DomEvent.Type
);为了使所有这些工作,onBrowserEvent
的默认行为在小部件中是将事件分派(dispatch)给已注册的处理程序。
这些无位变体的原因是事件最初被称为 int
位域中的常量,但浏览器有越来越多的事件,因此 GWT 开始用完位。无位变体仅可用于不泄漏的浏览器,因为小部件不会跟踪已注册的事件以从其onDetach
中注销它们。 ,与基于位的事件相反。
所有这些新的DomEvent
从 GWT 1.6 开始的 s(及其处理程序)是 NativeEvent
的包装器。 .有两种GwtEvent
s:原生的(DomEvent
s),由浏览器分派(dispatch),逻辑的由 GWT 自己分派(dispatch),不映射到 DOM 级别的事件。 addDomHandler
只关注DomEvent
s,又名原生事件。
总结:当您退出刚刚修改的文本字段时,浏览器会发送一个 change
事件。如果 TextBox
小部件已经沉没了该事件,它的 onBrowserEvent
将使用 Event
调用(它只是 NativeEvent
的遗留子类)代表该事件。 onBrowserEvent
的默认实现然后创建一个 ChangeEvent
并将其发送到已注册的ChangeHandler
s。
关于events - GWT 的 BrowserEvent 和 NativeEvent 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003277/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!