2012-07-12 3 views
3

기본적으로 해시를 청취하고 모든 것을 내 코드로 처리하려고하지만 해시 변경 이벤트를 듣지 않고 jQM을 사용하여 URL을 일반적으로 알 수는 없습니다. 나는 그들의 문서에서 코드를 시도했다 :jQuery Mobile이 window.location으로 무엇을하지 못하게하는 방법?

mobileinit 이벤트는 지금까지 비록 첫 페이지로드 해고 그것이 나를 위해 작동하지 않도록, (비록 그것이해야처럼 보인다)하지 않는
$(document).bind('mobileinit', function() { 
    $.extend($.mobile, { 
     hashListeningEnabled: false, 
     pushStateEnabled: false, 
     ajaxEnabled: false, 
     linkBindingEnabled: false 
    }); 
}); 

. 코드를 실행 시키면 $ (window) .bind ('load')에 넣을 수 있으며, 방화범 입력 콘솔에서 $.mobile.hashListeningEnabled === false을 통해 그 값이 올바르게 설정되어 있는지 확인할 수 있습니다. 그러나 그들은 보이지 않습니다. 아무것도 할! 주소 표시 줄에 <mysite>/index.html을 입력하면 내 기본 페이지가로드되지만 <mysite>/index.html#anything을 입력하면 jQM 로딩 회 전자가 표시되고 아무 것도로드되지 않습니다. 파일 내에 data-role=anything 인 페이지를 찾고 있기 때문에 아무 것도로드하지 않습니다. 기본 기능입니다). 또한 pushStateEnabled 재정의는 분명히 작동하지 않습니다. window.location.hash = /somethingelse.html을 실행하면 지원되는 브라우저의 URL 표시 줄에 http://<mysite>/index.html#somethingelse.html 대신 http://<mysite>/somethingelse.html이 표시되기 때문입니다.

기본적으로 내가 원하는 것은 jQuery Mobile이 페이지 레이아웃과 DOM 조작을 처리한다는 것입니다. 이것이 가능한가?

답변

4

이것이 올바른 설정 속성인지는 확실하지 않지만 (문서를 확인하지 않았 음) 이전에이 문제가있었습니다. 당신은이 작업을 수행해야합니다

<script type="text/javascript"> 
    $(document).bind('mobileinit', function() { 
     $.extend($.mobile, { 
      hashListeningEnabled: false, 
      pushStateEnabled: false, 
      ajaxEnabled: false, 
      linkBindingEnabled: false 
     }); 
    }); 
</script> 
<script src="//code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script> 

이유는 mobileinit 이벤트가 발생이 JQuery와 모바일 파일이로드 될 때이다 : 그것을 해결하기 위해 당신은 당신이 이렇게 스크립트를 포함하기 전에 이벤트를 바인딩해야합니다.

+0

감사합니다. 그리고 실제로 문서에서, 필자는 어떻게 든 그것을 건너 뛴 것이 틀림 없다고 생각합니다. – jcsmnt0

+0

환영합니다. 첫 번째 시도를 이해하는 데 시간이 걸렸습니다. –

관련 문제