JQuery +无限滚动在google nexus 7中无效

时间:2013-02-25 07:33:14

标签: android jquery cordova

$(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请求并附加到list.this至少在我的浏览器和我的意思模拟器,但当我在谷歌nexus 7上运行时,它不是在kick.i google并尝试了一些修补程序,这些修补程序在代码片段中进行了评论,但它没有帮助。

我正在使用jquerymobile + phonegap。

2 个答案:

答案 0 :(得分:0)

我创建一个方法并像这样调用它

的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次,所以我创建了一个变量进程,其值变为false,当调用GetWallpapers()方法时,其值变为true,当新的html为在dom上我再次将其值设置为false。

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

答案 1 :(得分:0)

对我来说,问题与视口设置有关。我并没有真正测试它,但我非常确定关闭用户扩展就是诀窍。这是我后代的完整视口标记:

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

我还改为Ajax Infinite Scroll插件而不是oldschoool Paul Irish版本,但是在更改视口属性之前,该插件有同样的问题。