我使用mgwt并尝试为 TouchPanel 实现 MouseOverEvent 和 MouseOutEvent,如下例所示。事实证明,这些事件不适用于 iPhone 等移动设备。
在桌面上:当您按下或按下鼠标按钮时,这两个事件都会起作用。
在手机上:不工作!当我执行点击时,MouseOverEvent 被触发。
这些事件(如 TouchOverEvent 或 TouchOutEvent)是否有等效的 Touch 实现?
public class MyTouchPanel extends TouchPanel
implements HasMouseOverHandlers, HasMouseOutHandlers {
@Override
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return addDomHandler(handler, MouseOverEvent.getType());
}
@Override
public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
return addDomHandler(handler, MouseOutEvent.getType());
}
}
编辑:我知道有 TouchStartEvent 和 TouchEndEvent 但如果触摸开始于与您希望触发 TouchStartEvent 不同的元素上,它们不会触发。以下图为例。如果您将手指(在移动设备上)放在绿色区域并在蓝色区域上滑动而不松开手指,则不会在蓝色区域上触发 TouchStartEvent。另一方面,当您在那里松开手指时,会在蓝色区域触发 TouchEndEvent。
如果您在绿色区域开始触摸并滑动到蓝色区域,是否有任何更改可以在蓝色区域触发 TouchStartEvent?
编辑:我在这里用 mgwt 做了一个示例项目:https ://github.com/confile/popup-test