clearInterval()在iPad上不起作用

时间:2013-09-26 11:00:02

标签: javascript jquery ipad

这就是我的所作所为:

var scrolling;

$('#nw_scroll_down').on('mousedown', function(){
  scrolling = setInterval(function() {
      $('.mod_article').scrollTop( $('.mod_article').scrollTop() + 5 );
    },25);    
});

$('#nw_scroll_down').on('mouseup', function(){
  if (scrolling) {
    window.clearInterval(scrolling);
    scrolling = false;
  }
});

在$(文档).ready(function(){});

一切正常直到行

window.clearInterval(scrolling);

这在PC上运行良好但在iPad上运行不正常。谁能想象为什么它在ipad(Chrome浏览器)上无效呢?

1 个答案:

答案 0 :(得分:4)

而不是mousedown,您应该使用Apple documentationMozilla documentation中详述的适用于iPad的touchstarttouchend个事件。

试试这个:

$('#nw_scroll_down').bind( "touchstart", function(e){
      scrolling = setInterval(function() {
      $('.mod_article').scrollTop( $('.mod_article').scrollTop() + 5 );
    },25); 
});

$('#nw_scroll_down').bind('touchend', function(){
  if (scrolling) {
    window.clearInterval(scrolling);
    scrolling = false;
  }
});

为了使它在台式机和触摸设备上都能正常工作,您可以试试这个:

$('#nw_scroll_down').on("mousedown touchstart", function(e){

更新

<小时/> 另一个解决方案given by Apple documentation似乎是将内联事件onclick="void(0)"添加到您拥有mousedown事件的元素。

  

可点击元素是链接,表单元素,图像映射区域或具有mousemove,mousedown,mouseup或onclick处理程序的任何其他元素。可滚动元素是具有适当溢出样式,文本区域和可滚动iframe元素的任何元素。由于存在这些差异,您可能需要将某些元素更改为可单击元素,如“Making Elements Clickable,”中所述,以在iPhone OS中获得所需的行为。