2012-02-11 61 views
2

我有一个点击事件绑定到图像。当图像被点击时文档应该滚动。在iOS5上使用ipad时,该功能在第一次点击图像时工作正常,但如果用户连续第二次点击该图像,该功能将失败。如果用户持续点击,该功能似乎再次触发,但无法滚动功能中定义的全像素距离。jquery手机点击事件触发一次,然后导致问题

如果用户点击图像,触摸屏幕以物理地滚动页面,然后稍后点击该图像,该功能第二次触发,因为它应该。为什么我的代码在第二种情况下工作,但不是第一种?非移动版本工作得很好。

<script type="text/javascript"> 
    $(window).load(function() { 
     $('#down_button').bind('tap', function() { 
      $.scrollTo('+=1024px', {axis: 'y', duration:300}); 
     }); 

     $('#up_button').bind('tap', function() { 
      $.scrollTo('-=1024px', {axis: 'y', duration:300}); 
     }); 
    }); 
</script> 
+0

你是什么意思的“用户连续第二次点击图像”双击?或者在文档完成滚动后再次点击? – ShankarSangoli 2012-02-11 21:02:39

+0

尝试没有window.load包装 – 2012-02-11 22:57:45

回答

0

您没有显示关联的HTML,因此我将猜测其中一个元素可能嵌套在另一个元素中。

如果是这种情况,那么轻拍事件可能会冒泡。您可以通过将event.stopPropagation()添加到事件处理程序中的一个或两个来防止发生这种情况。这也需要你改变传递的功能,如下所示:

.bind('tap', function(event) { 
+0

我必须尝试在某些时候。我实际上使用了一个固定宽度的文档,最终我读到固定宽度的文档不支持在移动webkit中滚动,所以我认为这是问题所在。虽然很奇怪,但我可以滚动一下工作。 – 2012-02-22 15:22:26