未捕获的TypeError:无法读取未定义的属性“top”

时间:2014-01-09 16:56:37

标签: javascript jquery

尝试使用按钮转到锚点。

我的JS代码是:

    function scrollToAnchor(aid){
        var aTag = $("a[name='"+ aid +"']");
        $('html,body').animate({scrollTop: aTag.offset().top},'slow');
    }

    $("#AsGuest").click(function() {
       scrollToAnchor('FName_Ship');
    });

HTML按钮我用作点击:

 <input type="Submit" id="AsGuest" class="btn btn-orange" value="CONTINUE AS A GUEST" style="margin-top:5px;"/>

区域我将点击:

 <input type="text" id="FName_Ship" name="FName_Ship" value="James" onchange="$.ajax( { type: 'GET', dataType: 'json', url: 'dmiajaxsecure.aspx?request=updatedata&amp;fieldname=shipfname&amp;fieldvalue=' + this.value + '&amp;extra=' + rnd() } );" class="valid">

2 个答案:

答案 0 :(得分:4)

当你在一个空的jQuery对象上调用它时,

jQuery.offset()返回null。在尝试调用aTag.length方法之前检查.offset(),很可能锚点不存在。

答案 1 :(得分:1)

a标记替换为input,因为它是您实际定位的元素。

function scrollToAnchor(aid){
    var inputTag = $("input[name='"+ aid +"']");
    $('html,body').animate({scrollTop: inputTag.offset().top},'slow');
}

$("#AsGuest").click(function() {
   scrollToAnchor('FName_Ship');
});