当用户滚动到页面的指定部分时,我正在使用滚动事件来加载新的内容块。这在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/
答案 0 :(得分:1)
问题似乎如下: -
$banner = $('#counterDisplay').position();
top
属性总是在较新版本的jQuery中返回0
。
您可以使用offset()
来修复它:
$banner = $('#counterDisplay').offset();
我认为下面解释了行为,但我不确定为什么它在新版本中表现不同(我找不到任何记录它的东西):
.position()方法允许我们检索当前位置 相对于偏移父项的元素。与此形成鲜明对比 .offset(),它检索相对于的当前位置 文献。将新元素定位在另一个元素附近时 同样包含DOM元素,.position()更有用。