我试图在元素打开时滚动到该元素的顶部(这使用的是bootstrap 3手风琴结构),但出现错误消息“ Uncaught TypeError:无法读取undefined的属性” top”,其中undefined为heading
我猜?我不确定为什么会发生我在heading
上执行的其他所有操作的问题,即removeClass()
正常工作。
$('.checkout .collapse').on('shown.bs.collapse', function() {
var heading =
$('.checkout')
.find('a[aria-controls="' + $(this).attr('id') + '"]');
heading.removeClass('complete')
.css('cursor', 'default');
$('html, body').animate({
scrollTop: heading.offset().top - 100
}, 'slow');
});
编辑:添加
$(html, body).ani ...
时,标题似乎返回空对象,但是,如果我删除该部分,它将返回预期的结果。 最佳答案
尝试使用jQuery的length
属性检查是否存在这样的元素
if (heading.length) {
$('html, body').animate({
scrollTop: heading.offset().top - 100
}, 'slow');
}
关于javascript - 无法读取未定义的属性(已定义时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31317453/