2014-01-09 51 views
0

嘗試使用按鈕轉到錨點。未捕獲TypeError:無法讀取未定義的屬性'top'

我的JS代碼:

<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"> 
+1

變量'aTag'是不確定的,檢查aid'的'的價值,並確保您的jQuery選擇是獲取你想要它,因爲這是錨標記,其中的謬誤在於 –

+0

看起來不像一個錨點,更像一個輸入? – adeneo

+0

如果您在頁面上輸入'$(「a [name ='FName_Ship']」).length到瀏覽器JavaScript控制檯中,會發生什麼? – Pointy

回答

3

jQuery.offset()我使用的點擊

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

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

HTML按鈕當你在一個空的jQuery對象上調用它時返回null。在嘗試調用.offset()方法之前,請檢查aTag.length,最有可能的情況是錨點不存在。

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'); 
}); 
相關問題