[英]jquery / javascript: Uncaught TypeError?
大家好,我写了一些自定义的动画滚动功能...
function scroll(selector, animate, viewOffset) {
pageOffset = selector.offset();
scrollPos = pageOffset.top - viewOffset;
if (animate) {
$('html, body').animate({scrollTop : scrollPos + 'px'}, {
duration: 'slow', // how fast we are animating
easing: 'easeOutQuint', // the type of easing
complete: function() { }
});
} else {
$('html, body').scrollTop( scrollPos );
}
}
我用scroll($('#something'), false, 30);
称呼它scroll($('#something'), false, 30);
它实际上可以工作,但是有时会有点bug,并且该功能不能正常工作。 我总是在点击事件上调用scroll()函数。
我最大的问题是,在页面加载时,我的控制台告诉我以下行。
未捕获到的TypeError:无法读取null的属性“ top”(script.js第191行,即上述示例中的第3行)
知道什么可能导致此错误吗? 甚至在dom-ready或加载时也不调用scroll()函数。 只是在特定的点击事件上调用它。
谢谢您的帮助
您确定在页面上定义了#selector吗?
不应该是:
pageOffset = $(selector).offset();
?
我通常会因选择器类型错误而遇到相同的“神秘错误”。
使用try / catch语句包装函数中的所有代码,然后尝试对其进行调试。 几乎所有主流浏览器中都有调试工具。 在catch语句内设置一个断点,然后在脚本中点击pageOffset和选择器变量。
PS:PhpStorm拥有有史以来最好的JavaScript调试器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.