滚动事件在jQuery 1.9.1或更高版本中不起作用

时间:2013-08-21 13:35:00

标签: jquery scroll counter

当用户滚动到页面的指定部分时,我正在使用滚动事件来加载新的内容块。这在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/

1 个答案:

答案 0 :(得分:1)

问题似乎如下: -

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

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

您可以使用offset()来修复它:

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

认为下面解释了行为,但我不确定为什么它在新版本中表现不同(我找不到任何记录它的东西):

  

.position()方法允许我们检索当前位置   相对于偏移父项的元素。与此形成鲜明对比   .offset(),它检索相对于的当前位置   文献。将新元素定位在另一个元素附近时   同样包含DOM元素,.position()更有用。

Here's a fiddle