2013-02-25 30 views
1
$(window).scroll(function() { 
     var yDistance = $('html, body').scrollTop(); 
     //var el = $(this).get(0); 
     //if (el.offsetHeight + el.scrollTop >= el.scrollHeight) { 
     //if ((yDistance + $(window).height()) > ($.mobile.activePage.children('.ui-content').height() - 150)) { 
     if ($(window).scrollTop() == $(document).height() - $(window).height()) { 

      if (!lastIndexReached) { 
       pageIndex++; 
       GetWallpapers(pageIndex, pageSize); 
      } 
     } 
    }); 

不工作在上面的代码,当页面滚动到页的新Ajax请求将被调用,并追加到列表的底部我在做什么是。这工作的每一个地方,我的意思是至少在我的浏览器和我的模拟器,但是当我运行它在谷歌Nexus 7它不是firing.i谷歌,并尝试了一些修补程序,在评论片段,但它没有帮助。JQuery的+无限滚动的谷歌Nexus 7

我正在使用jquerymobile + phonegap。

+0

你有没有尝试使用setInterval与scrollcheck而不是滚动事件? – 2013-02-25 08:11:32

+0

我只是试图把所有的代码放在一个函数中,并使用setIntetrval调用该函数,但仍然没有在google nexus中调用该函数7 – 2013-02-25 11:35:47

+0

如果没有,请将console.log('test')放在开头的功能是100%确定该功能没有运行。 如果该函数正在运行,但某些内容正在停止整个功能,只需将console.log代码片段放在一起即可查看其被卡住的位置。 – 2013-02-25 11:54:39

回答

0

我createtd的方法和把它称为这样

的setInterval( 'checkScroll()',1000);

function checkScroll() { 
    if ($(this).scrollTop() + $(this).height() >= ($(document).height() - 100)) { 

     if (lastIndexReached == false && process==false) { 
      process = true; 
      console.log(pageIndex); 
      pageIndex++; 
      GetWallpapers(pageIndex, pageSize); 
     } 
    } 
} 

的GetWallpapers()方法被调用10次,每次滚动是在底部周围,所以我创建的变量过程,其值变为假并且GetWallpapers时()方法被调用它的值变为真和当新的html被添加到dom时,我将它的值再次设置为false。

这样我解决了我的问题,感谢@IvanIvković,感谢帮助的人。

0

对我来说,问题原来与视口设置有关。我没有真正测试它,但我很确定关闭用户缩放是什么伎俩。这里是为后人我的全视标签:

<meta name="viewport" content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'>

我也改到Ajax Infinite Scroll插件,而不是oldschoool保罗爱尔兰版本,但该插件有同样的问题之前,我改变了视属性..