簡體   English   中英

未捕獲的TypeError:無法讀取未定義的屬性“ top”

[英]Uncaught TypeError: Cannot read property 'top' of undefined

對不起,我的英語不好,但是我有一個問題。

這是我收到的消息:

Uncaught TypeError: Cannot read property 'top' of undefined 

這是我的功能:

    function onScroll(event){
        var scrollPos = $(document).scrollTop();
        $('#menu-center a').each(function () {
            var currLink = $(this);
            var refElement = $(currLink.attr("href"));
            if (refElement.position().top<= scrollPos && refElement.position().top + refElement.heig
ht() > scrollPos) {
                $('#menu-center ul li a').removeClass("active");
                currLink.addClass("active");
            }
            else{
                currLink.removeClass("active");
            }
        });
    }

我不明白,因為我在本地還有另一個頁面可以使用此功能,而且效果很好。

我已經在網上搜索了,但沒有與我的問題相對應的內容。

謝謝你的幫助

更改此行: var refElement = $(currLink.attr("href")); 在此行中: var refElement = $(currLink).attr("href");

我找到了上述問題的解決方案。 請參閱以下代碼段

jQuery(document).ready(function($) {
  $(document).on("scroll", onScroll);
});

function onScroll(event){
  var scrollPos = $(document).scrollTop();
  $('#menu-center a').each(function () {
        var currLink = $(this);
        var refElement = currLink.attr("href");
        var splitEle = refElement.split('#');

        if ($("#"+splitEle[1]).offset().top <= scrollPos && $("#"+splitEle[1]).offset().top + $("#"+splitEle[1]).height() > scrollPos) {
            $('#menu-center ul li').removeClass("active");
            currLink.parent().addClass("active");
        }else{
            currLink.parent().removeClass("active");
        }
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM