Javascript 试图使Div在某个位置粘滞,但一个未捕获的类型错误破坏了其他代码

Javascript 试图使Div在某个位置粘滞,但一个未捕获的类型错误破坏了其他代码,javascript,jquery,sticky,typeerror,Javascript,Jquery,Sticky,Typeerror,我试图在滚动时使div变粘,并在某个高度取消粘。我得到了下面的代码并对其进行了编辑。它工作了,但其中的一个错误影响了其他Jquery脚本的工作。当我检查console的错误时,我得到以下信息: 未捕获的TypeError:无法读取HTMLDocument中未定义的属性“top” jQuery(函数($){ $.fn.scrollBottom=函数(){ 返回$(document.height()-this.scrollTop()-this.height(); }; 变量$el=$('imgsti

我试图在滚动时使div变粘,并在某个高度取消粘。我得到了下面的代码并对其进行了编辑。它工作了,但其中的一个错误影响了其他Jquery脚本的工作。当我检查console的错误时,我得到以下信息:

未捕获的TypeError:无法读取HTMLDocument中未定义的属性“top”

jQuery(函数($){
$.fn.scrollBottom=函数(){
返回$(document.height()-this.scrollTop()-this.height();
};
变量$el=$('imgsticky');
变量$window=$(window);
var top=$el.parent().position().top;
$window.bind(“滚动调整大小”,函数(){
变量间隙=$window.height()-$el.height()-170;
var visibleFoot=970-$window.scrollbooth();
var scrollTop=$window.scrollTop()
如果(滚动顶部<顶部+50){
$el.css({
顶部:(顶部-滚动顶部)+“px”,
底部:“自动”
});
}否则,如果(可见英尺>间隙){
$el.css({
顶部:“自动”,
底部:visibleFoot+“px”
});
}否则{
$el.css({
排名:60,
底部:“自动”
});
}
}).scroll();
});

如何修复此问题?

在尝试获取其
位置之前,请检查jQuery对象是否包含任何元素:

var parentEl = $el.parent();
var top =0;
if (parentEl.length) {
   top = parentEl.position().top;

}

你能把相关的HTML代码也贴出来让我们看看吗?
var parentEl = $el.parent();
var top =0;
if (parentEl.length) {
   top = parentEl.position().top;

}