我收到一个 jquery 错误:Uncaught TypeError: Cannot read property 'top' of undefined
我假设我必须在我的代码中添加一个检查,但它仍然给出错误。我想知道如何正确添加支票
j查询:
var topOfElement = $('.references-list-container-outer').offset().top;
$(window).scroll(function () {
if ($(window).scrollTop() > topOfElement) {
$('.article-nav-spotlight-chylers-page').fadeOut();
} else {
$('.article-nav-spotlight-chylers-page').fadeIn();
}
});
最佳答案
试试这个:
var element = $('.references-list-container-outer');
var topOfElement = element.length ? element.offset().top : 0;
$(window).scroll(function () {
if ($(window).scrollTop() > topOfElement) {
$('.article-nav-spotlight-chylers-page').fadeOut();
} else {
$('.article-nav-spotlight-chylers-page').fadeIn();
}
});
首先检查是否有元素,如果没有元素,则将值设置为 0
。
如果这是一个问题,因为在调用它之前页面没有完全加载,您可以将代码包装在 document ready 中:
$(document).on('ready', function() {
var element = $('.references-list-container-outer');
var topOfElement = element.length ? element.offset().top : 0;
$(window).scroll(function () {
if ($(window).scrollTop() > topOfElement) {
$('.article-nav-spotlight-chylers-page').fadeOut();
} else {
$('.article-nav-spotlight-chylers-page').fadeIn();
}
});
}
关于javascript - 如何检查此元素是否存在以防止未定义错误的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58995929/