使用Zepto-js和iPad获取doubleTap上的坐标

时间:2012-09-29 11:24:32

标签: javascript ios ipad mobile zepto

任何熟悉zepto的人吗?

如果他们有良好的doubleTap植入并且他们能够处理这项工作,我也会接受其他移动框架的建议。

我需要在移动Safari中第二次点击doubleTap事件时检测坐标。

到目前为止,我一直在使用 jQuery 作为event-obj并且语法很好

 x: e.pageX 
 y: e.pageY 

但它在iPad中不起作用

感谢任何帮助,BR

2 个答案:

答案 0 :(得分:1)

我不知道这是否可以在Zepto上工作(我在JQMobi上遇到同样的问题)但是如果你使用HammerJS http://eightmedia.github.com/hammer.js/而不是你可以获得点击的实际位置

请参阅我的SoftPaws游戏中的示例:https://github.com/gavD/soft-paws

我希望这有帮助!

答案 1 :(得分:1)

正如我所提到的,我找到了一个解决方案,所以如果其他用户面临同样的问题我会发布它:

// double tap (tapped twice within 250ms)
      if (touch.isDoubleTap) {
        touch.el.trigger('doubleTap')
        touch = {}

zepto.js中的上述代码检测到touch事件是doubleTap并触发其处理程序。这里有一点修改:

 // double tap (tapped twice within 250ms)
      ...............
        touch.el.trigger('doubleTap', {touch: touch})

通过传递事件作为参数来覆盖它来解决问题。现在可以访问事件对象及其所有属性,包括坐标。

以下是如何从定义的处理程序中提取它们的示例:

    Zepto('selector').doubleTap(function(e){
       var dblTap = e.data.touch;
       var coord = {
          x: dblTap.x1,
          y: dblTap.y1
       }
    });

这对 v1.0.rc1 有效。不知道将来的版本会是什么情况