1

在旧版本的 YUI 中,无法模拟 touchevent (touchstart/touchmove/touchend),我们可以在 yui 官方网站上看到:http://yuilibrary.com/yui/docs/event/simulate.html 无触摸活动部分)

但在 YUI 的最新版本(3.6.0)中,似乎可以模拟 touchevent。当您查看此文件时:http://yuilibrary.com/yui/docs/api/files/event-simulate_js_event-simulate.js.html#l60,脚本中实现了触摸事件。

如果你看这篇文章:http ://www.yuiblog.com/blog/2012/08/10/twiy/ ;YUI 接受关于手势模拟的拉取请求。

但是当我这样做时:

 Y.one('mydiv').simulate('touchstart');

我有这个消息:

 Error: simulate(): Event 'touchstart' can't be simulated. Use gesture-simulate module instead.

所以我尝试使用“gesturemovestart”并做

 Y.one('mydiv').simulate('gesturemovestart');

但我有这个消息:

Event 'gesturemovestart' can't be simulated

那么,有谁知道是否可以在 YUI 上模拟 touchevent,如果可以,为什么会出现这个错误?

4

2 回答 2

2

如果您在 git hub https://github.com/yui/yui3/blob/master/build/event-simulate/event-simulate.js上引用来自 yui3 的 event-simulate.js , 评论的第 725 行说 touchevents期望参数 touchList[代表与此事件关联的所有触摸的触摸对象的集合]。因此,如果您尝试类似于 Y.one("#myDiv").simulate("touchstart", { touches: {PageX: 200, PageY: 200} });

它应该模拟 touchstart 事件。

由于触摸和手势事件在 iOS(2.0 及更高版本)上可用,因此测试应该在 ios 设备上成功通过。

于 2012-08-23T07:20:20.487 回答
0

我终于找到了答案。

你可以做 Y.one("#myDiv").simulate("touchstart", { touches: {PageX: 0, PageY: 0} }); 但仅适用于 Android 和 iOs 系统,这适用于我的脚本(在平板电脑和智能手机上运行)。

您必须更新到 YUI 3.6.0。,如果你想使用它。

如果您参考这篇文章:http: //yuilibrary.com/forum/viewtopic.php ?f=18&t=10521 ,手势模拟将在 YUI 下一个版本 3.6.1 中实现。

于 2012-08-24T15:54:55.457 回答