繁体   English   中英

jQuery的/ JavaScript的:未捕获的TypeError?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM