2014-01-09 9 views
0

버튼을 사용하여 앵커로 이동하려고합니다.잡히지 않은 TypeError : 정의되지 않은 'top'속성을 읽을 수 없습니다.

내 JS 코드는 다음과 같습니다

<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

변수'오류가 –

+0

가처럼 보이지 않는 자리하고있는 곳 aTag'는 aid''의 값을 확인하고 jQuery를 선택하면이 그대로 그것을 원하는 앵커 태그를 가져 오는되어 있는지 확인 정의되지 앵커, 더 많은 입력처럼? – adeneo

+0

페이지에서'$ ("[name = 'FName_Ship']"). length. "를 브라우저 자바 스크립트 콘솔에 입력하면 어떻게됩니까? – Pointy

답변

3

jQuery.offset() : 내가 클릭에 갈거야

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

지역 : 내가 클릭으로 사용하고

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'); 
}); 
관련 문제