2012-02-22 4 views
1

jQuery 모바일 사이트가로드 된 후 div 위치로 스크롤하고 싶습니다. 이 코드페이지가로드 된 후 silentScroll이 실행 취소됩니다.

function changeViewport(){ 
      var errorMsg = $('.dataerror').first(); 
      if(errorMsg != null) { 
       var newPosition = errorMsg.offset(); 
       $.mobile.silentScroll(newPosition.top); 
      } 
    } 

내가 $(document).ready에 함수를 호출하지만 위치로 기능과 silentScroll를 호출 후 다시 페이지 상단에 프레임 워크 자동 스크롤을 것을 사용하여 작동 ... 누군가는이 문제를 방지하는 방법을 알고 ? (나는 또한 pageinit, pageshow ...을 시도했다.) 함수를 덮어 쓰거나 다른 이벤트를 트리거해야합니까? 도움이나 제안을 환영합니다 :)

건배.

+0

나는 JQuery와 모바일에 익숙하지 않은 해요,하지만이 답변에 당신을 이끌 수있는 다음과 같습니다 http://jquerymobile.com/test/docs/api /globalconfig.html –

+0

설정해야 할 단서는 무엇입니까? – Nils

답변

0

이 문제로 어려움을 겪은 끝에 해결 방법을 찾은 것 같습니다. changePage에 사용 된 애니메이션이 자동 스크롤보다 우선시되는 것으로 보입니다. 이 here에 대해 자세히 알아볼 수 있습니다. 같은 페이지에서 덧글은 pagebeforeshow 또는 pageaftershow과 같은 다양한 이벤트에 대해 토론하기 시작합니다. 불행히도 이러한 결과는 나에게 아무런 결과도 가져 오지 않았습니다.

해결 방법은 .silentScroll을 0.5 초의 제한 시간으로 포장하는 것입니다. 조금 고르지는 보이지만 그것은 나를 위해 일하는 것 같습니다. 희망이 도움이됩니다.

이 시도 :

function changeViewport(){ 
     var errorMsg = $('.dataerror').first(); 
     if(errorMsg != null) { 
      var newPosition = errorMsg.offset(); 
      setTimeout(function(){$.mobile.silentScroll(newPosition.top)}, 500); 
     } 
} 
관련 문제