2014-12-26 4 views
0

간단한 코드를 만들어 "초기 화면"을 만들었습니다.mobile.changePage()가 함수에서 작동하지 않습니다.

내 데이터에 대한 localstorage를 사용하고 있습니다. 처음으로로드하면 URL에서 데이터를 가져오고 $.mobile.changePage()을 사용하여 페이지를 변경할 수 있습니다. 그러나 localstorage 데이터가 이미 저장된 경우 페이지 코드 변경이 작동하지 않습니다.

function HOME() { 
    if (window.localStorage.getItem('newhome')) { 
     $.mobile.changePage("#pageone", { 
      transition: "none", 
      changeHash: false 
     }); 
    } else { 
     $.get('http:/someurl', function (data) { //comment this line if we make apk 
      window.localStorage.setItem('newhome', JSON.stringify(data)); 
     }).done(function (data) { 
      $.mobile.changePage("#pageone", { 
       transition: "none", 
       changeHash: false 
      }); 
     }); 
    } 
} 
<body> 
    <div id="splash" data-role="page"><h1>splash here</h1></div> 
    <div id="pageone" data-role="page"><p>my content here</p></div> 
</body> 

나는 예를 들어, 다른 기능을 실행하는 경우 console.log, 작동하지만, $.mobile.changePage은 작동하지 않습니다. 그것은 결코 경우 루프에 들어갑니다 없기 때문에

+0

setTimeOut을 1 초 추가하여이를 수정하십시오. – Peter

+0

이것은 이벤트 핸들러 내에서 호출됩니까? – unobf

+0

@unobf yea, 안에 – Peter

답변

0

페이지가 변경되지 않는 이유입니다. 다른 사람이 예를 실행되지만 하지 돌려 부울 유형을 수행 .getItem() 방법. 귀하의 키가 실제로 설정되어 있는지 확인하려면 null을 확인해야합니다. 따라서 코드가 다음과 같이 보일 것입니다.

if (localStorage.getItem("username") === null) { 
$.get('http://www.thejewishinsights.com/wp/wp-json/posts', function (data) { //comment this line if we make apk 
     window.localStorage.setItem('newhome', JSON.stringify(data)); 
    }).done(function (data) { 
     $.mobile.changePage("#pageone", { 
      transition: "none", 
      changeHash: false 
     }); 
    }); 
} 
else{ 
$.mobile.changePage("#pageone", { 
     transition: "none", 
     changeHash: false 
    }); 
} 

코드를 확인하지 않았지만 아이디어를 얻을 수 있습니다. 또한 .changePage에 대한 조언은 설명서에 명시된대로 jQuery 모바일 1.5에서 제거 될 예정입니다. http://api.jquerymobile.com/jQuery.mobile.changePage/

희망이 있습니다. 건배와 새해 복 많이 받으세요!

+0

을 사용했다 u는 어떤 이벤트 핸들러가 호출 홈 이외 하는가를 읽고되지 이벤트 핸들러를? 등록하는 ? 코드가 올바르게 작동합니다. 항상이 함수에있었습니다. – Peter

+0

나머지 코드가 어떻게 보이는지 모르겠으므로, 내가 말할 수있는 유일한 것입니다. 페이지 사이를 전환하는 또 다른 방법을 사용해야한다는 것입니다. 나는 네가 어디로 잘못 갔는지 알아내는 것보다 쉬울 것이다. – TheUnkown

+0

나는 당신이 약간 무례하다고 생각합니다 ... 그가 당신을 도우려고 했으므로 "독서하지 않습니까?" 다른 사람이 당신을 도우려는 것에 대해 두 번 생각하게하십시오 ... – AriWais

0

다음을 사용해 보셨습니까?

$(":mobile-pagecontainer").pagecontainer("change","#newpage"); 

JQMobile 공식 사이트는 사용하는 대신이 사이트를 사용하는 것이 좋습니다.

+0

'changePage'는 더 이상 사용되지 않지만 여전히 작동합니다. – Omar

+0

예, 여전히 작동하지만 changePage에 많은 문제가있었습니다.이 새로운 접근 방식을 사용 했으므로 ... 아무래도 문제가 해결 될 수도 있습니다. – AriWais

관련 문제