簡體   English   中英

無法讀取jQuery中未定義的屬性“ top”

[英]Cannot read property 'top' of undefined in jQuery

我剛剛使用jQuery開發了具有滾動效果的網站。 當我單擊菜單項時,它應向下滾動並顯示該部分。 當我單擊特定菜單時,它會向下滾動。 但是在url中,我得到的是www.example.com/#menuitem_name 特定部分未激活。

這是我的jQuery文件:

$('body').scrollspy({
    target: '.navbar-fixed-top',
    offset: 80
})

$('a.page-scroll').bind('click', function(event) {
    var link = $(this);
    $('html, body').stop().animate({
        scrollTop: $(link.attr('href')).offset().top - 70
    }, 500);
    event.preventDefault();
});

});

的HTML

<section id="beta1.0" class="container">Hi</section>
<li><a class="page-scroll" href="#beta1.0">Beta1.0</a> hi</li>

您的選擇器如下所示: #beta1.0

這意味着“與id一個元素beta階級 0 ”(或會,如果你能有一個0后立即.在選擇器)。

您需要逃脫.

link.attr('href').replace(".", "\\.", "g")

我同意@Quentin的答案。

由於beta1.0引起問題
如果只是刪除.0或只是點。 它工作正常。

查找jsfiddle演示

$(function(){
/*
$('body').scrollspy({
    target: '.navbar-fixed-top',
    offset: 80
});
*/

$('a.page-scroll').bind('click', function(event) {
    var link = $(this);
    $('html, body').stop().animate({
        scrollTop: $(link.attr('href')).offset().top - 70
    }, 500);
    event.preventDefault();
});

});

暫無
暫無

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

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