簡體   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