1

当用户滚动到页面的指定部分时,我正在使用滚动事件来加载新的内容块。这在 jQuery 1.8.3 中运行良好,但使用更多最新的库它会中断。有谁知道在以后的库中不推荐使用代码的哪一部分以及我如何更新代码?

$(window).scroll(function () {  
    $banner = $('#counterDisplay').position();
    $triggerPos = $('div.img:nth-of-type('+$imgNumber+')').position();
    if ($banner.top >= $triggerPos.top) {
        $counter = $counter + 1;
        $('#page').text($counter);
        $('#counter').text($counter);

        for (i = $imgNumber + 1; i < $imgNumber + 10; i++) {
            $imgDiv = "<div class='img'>" + i + "</div>";
            $('#main').append($imgDiv);
        }
        $imgNumber = $imgNumber + 9;
        $('#imgs').text($imgNumber);
        $pageHeight = $pageHeight + 1000;
        $('#container').css('height',$pageHeight+'px');
    };
});

工作模型可以在这里查看:http: //jsfiddle.net/gstubbenhagen/fDAPY/11/

4

1 回答 1

1

问题似乎是以下行: -

$banner = $('#counterDisplay').position();

top属性总是0在较新版本的 jQuery 中返回。

您可以offset()改用以下方法修复它:

$banner = $('#counterDisplay').offset();

认为以下内容解释了这种行为,尽管我不确定为什么它在新版本中表现不同(我找不到任何记录它的东西):

.position() 方法允许我们检索元素相对于偏移父元素的当前位置。将此与 .offset() 进行对比,后者检索相对于文档的当前位置。当将新元素定位在另一个元素附近并在同一个包含 DOM 元素内时,.position() 更有用。

这是一个小提琴

于 2013-08-21T13:50:51.577 回答