如何修复以下错误行:
var targetTop = $('#' + page).offset().top;
我正在尝试最后 3 个月,但仍然没有找到修复方法。
$(document).ready(function(){
$(window).scroll(function() {
$('.page').each(function () {
changePage(this.id);
});
});
});
function changePage (page) {
var position = $(window).scrollTop();
var targetTop = $('#' + page).offset().top;
var targetBottom = targetTop + $('#' + page).height();
if (position >= targetTop && position < targetBottom && !$('#' + page).hasClass('active')) {
console.log('id: ' + page);
$('.page').removeClass('active');
$('#' + page).addClass('active');
$('iframe').attr('src', '<?=SITE_URL?>upload_files/collection/TS.pdf#page=' + page[page.length - 1]+'&zoom=45&toolbar=0&navpanes=0');
}
}
$('#' + page)
不返回任何元素,这意味着$('#' + page).offset()
返回undefined
。
您无法获得undefined
的.top
属性。
显然,使用 '#' + page
创建的选择器不正确。
原因可能是changePage(this.id);
中未定义的id
。