JavaScript:滚动和获取项目位置触发错误
我正在检查页面底部是否有可见的元素,以便使用scroll应用自动分页。它工作得很好,ajax被解雇了,但我一直在日志中记录这一点JavaScript:滚动和获取项目位置触发错误,javascript,infinite-scroll,Javascript,Infinite Scroll,我正在检查页面底部是否有可见的元素,以便使用scroll应用自动分页。它工作得很好,ajax被解雇了,但我一直在日志中记录这一点 allNews:418 Uncaught TypeError: Cannot read property 'top' of undefined at isScrolledIntoView (allNews:418) 下面是代码,请注意,默认情况下imgloader肯定不可见 <script> $(document).ready(function(
allNews:418 Uncaught TypeError: Cannot read property 'top' of undefined
at isScrolledIntoView (allNews:418)
下面是代码,请注意,默认情况下imgloader肯定不可见
<script>
$(document).ready(function() {
$(window).scroll(function () {
if (isScrolledIntoView("img#loader")) {
var cur_page = parseInt($("#cur_page").text());
var last_page = parseInt($("#last_page").text());
$("img#loader").remove();
if (cur_page < last_page) {
$(".blog_loading").css('display','block');
cur_page++;
$("#cur_page").text(cur_page);
$.ajax({
type: 'GET',
url: '/newsPaginate/<?=$lang?>/' + cur_page,
success: function (response) {
//getting data and append it here
$("#bottomLinks").append('<img id="loader" src="/images/loader.svg" style="visibility: hidden; display: block">');
$(".blog_loading").css('display','none');
}
});
}
}
else {
//console.log('no');
}
});
});
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
return ((elemTop <= docViewBottom) && (elemTop >= docViewTop));
}
</script>
如何修复此问题以停止将此记录到控制台如果您说“元素”不总是在页面上,请将isScrolledIntoView功能更改为:
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
if ($(elem).length) {
var elemTop = $(elem).offset().top;
return ((elemTop <= docViewBottom) && (elemTop >= docViewTop));
}
return false;
}
我觉得你没有提供完整的代码段。请提供所有必要的代码段,这些代码段用整个JS代码更新,只是删除了ajax代码,这样就不会有问题了。确保你对我所做的有充分的了解