Win 8.1平板电脑上的Internet Explorer 11 - 轻扫手势触发器" taphold"事件

时间:2014-05-22 13:48:20

标签: windows internet-explorer swipe taphold

我正在使用JavaScript为Internet Explorer 11(在Win 8.1平板电脑上)开发一个Web应用程序,我正在使用jQuery版本1.6.4和jQueryMobile版本1.0。 我正在开发的功能之一是带有应用程序的启动器(类似于iPhone设备中的主屏幕 - 带有应用程序的多个页面), 作为此功能实现的一部分,我正在使用不同的事件 - “tap”,“taphold”和“tocuhstart”,“touchmove”&滑动手势的“touchend”。

我面临的问题是,每次我在页面之间滑动时,除了“滑动”事件(刷卡后),触发“taphold”事件。

一开始我认为问题出在我身边 - 也许是因为旧版本的jQuery& jQueryMobile或错误的事件处理。

然后我试图找出问题, 我在W3Schools找到了这个“Tryit”: http://www.w3schools.com/jquerymobile/tryit.asp?filename=tryjqmob_events_taphold 我在IE11上运行它(它也发生在IE10中) 将标题“滑”到左边和左边。对, 而“taphold”事件被触发了! 与我的Web应用程序相同的问题。

为了确保我只是“刷过”而没有“taphold”,我改变了jQueryMobile文件中的阈值(这个值决定了用户在“taphold”事件被触发之前必须持有多长时间)从750毫秒到2000, 它又发生了。

重要的是要提到这个问题发生在我在页面之间滑动而不只是在页面内滑动时,即滑动手势描述与问题行为是从手指在屏幕的一个区域开始并完成在屏幕边缘的动作 - 我知道它太详细但是它是一个很大的不同,在页面内完成的轻扫手势不会触发“taphold”事件。

有没有人遇到过这个问题?

有没有人能解决这个问题?或解决方法?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我发现jquery mobile的taphold(longclick)函数本身也可以通过滑动固有地触发。似乎没有一个门槛能够解决这种情况。我希望能够滚动文本并且只能通过taphold打开弹出的某些单词,但似乎我必须小心,因为“轻微滑动”也会触发tapholds打开,无论我给它什么门槛。

为了查看是否存在问题,我针对示例页面测试了该理论。 http://api.jquerymobile.com/taphold/ 我也尝试过w3schools上面提到的链接,同样的事情发生了。

taphold说750ms。但是如果你快速“滑动”(在750毫秒之前),它会注册盒子以改变颜色,这是一种不希望的效果。 w3schools链接“刷卡”和taphold使得字母消失,当然只有taphold应该这样做。

由于这个原因,似乎你的例子可能只是渲染taphold,因为我用taphold和滑动脚本一起测试这个以试图抵消taphold的不希望的“滑动”效果,我只能延迟滑动显示弹出窗口,但没有找到完全关闭它的方法。

我希望找到一种方法来解决这个问题并且正在弄乱一些js,但到目前为止还是很短暂。 也许其他人也可以通过修复或黑客来解决这个问题。