2012-04-24 2 views
0

저는 매우 기본적인 jquery 모바일 페이지가 있습니다.이 페이지는 3 data-role:page divs이고 하나는 index.php입니다. 첫 번째 페이지는 단순히 배경 이미지이고 input type="tel"position:fixed이고 화면의 중앙에 있습니다. iPhone에 직접 사이트를로드하면 스타일과 위치가 모두 정확합니다.jQuery 모바일 링크가 외부 링크에서 오는 스타일이 아닙니다.

그러나 사람들은 매개 변수 (예 : ?event=123123123, 임의의 문자열)를 전달하는 외부 링크를 통해 사이트에 도달합니다. 이 방법으로로드 할 때, 첫 번째 페이지는 항상 스타일이 없습니다. 즉, 입력 상자는 인라인, 머리말에서 선언, 외부 파일에서로드 등 모든 css, jquery.css 및 내 자신을 모두 무시합니다. If 나는 페이지를 새로 고친 다음 스타일이 시작되고 예상 한 것처럼 보입니다.

$('#step1').live('pagebeforecreate',function(event){ 
// alert('This page was just enhanced by jQuery Mobile!'); 

$('<div id="formbox"><form><input type="tel" name="number" id="number" value="" style="width:87%; height:40px; font-size:36px; font-weight: bold; left:14px; position:relative; text-align:center;" /></form></div>').appendTo('#formboxouter'); 
// var $container = $('#step1'); 
// refreshStyles($container); 
$('#formbox').trigger('create'); 
// $(window.document).trigger("mobileinit"); 
}); 

I :

내가 좋아하는, 예를 들면 등 pageinit, pagebeforeloadpageshow 바인딩처럼 기본적으로 내가 생각할 수있는 모든 것을 (그리고 아마 이해가되지 않는 많은 것들을) 시도했습니다 '벽면에있는 모든 것을 던져서 무엇이 달라 붙어서'라는 좌절의 단계에 도달했으며, 아무 것도 붙어 있지 않았습니다.

내부 링크 (예 : rel=external)를 수정하는 방법에 대한 많은 정보를 찾았지만 왜 이런 일이 발생할 수 있는지 설명하지 못했습니다.

외부 매개 변수를 전달하면 스타일이로드되지 않는 이유는 무엇입니까?

답변

0

매개 변수와 관련하여 JQM에 대한 설명서를 읽을 수 있습니다. 또한 $('.ui-page').trigger('create'); 대신

jQuery를 모바일 쿼리를 내부/임베디드 페이지에 전달 매개 변수를 지원하지 않는 페이지 사이를 통과하는 매개 변수

$('#formbox').trigger('create');의 시도. 예를 들어 프레임 워크에 "#somePage? someId = 1"링크가 있으면 "#somePage"로 해석하고 ID가 somePage 인 내부 페이지 div로 이동하여 #somePage의 data-url을 적용합니다 ? someId = 1 해당 페이지에 컨테이너. 두 번째 매개 변수 (예 : "#somePage? someId = 2")를 호출하면 jquery Mobile 이 div의 data-url을 참조하기 때문에 동일한 div가 검색됩니다.이 div는 한 번만 설정되며 은 #somePage? someId = 1에 남아 있습니다. .

페이지간에 쿼리가 필요한 경우 프로젝트에 추가 할 수있는 플러그인이 두 개 있습니다. 가벼운 page params plugin이며 backbone.js 또는 spine.js와 함께 사용하기 위해보다 완전한 기능을 갖춘 jQuery Mobile router plugin 이 있습니다. 답장을

info source

+0

감사합니다. 나는 그걸 조금 어리 석었지만 결국 문제는 실제로 '에 잘못 설정되었습니다. '으로 변경되면 스케일링 문제가 해결되었습니다. 나는이 페이지가 iphone 4s가 사용하는 640 대신에 320px에서 렌더링하려고 시도하고 있었기 때문에 상자가 리프레시까지 잘못 렌더링되게 만들었다 고 생각합니다. – Davezatch

관련 문제