2012-04-24 9 views
0

私はかなり基本的なjqueryモバイルページを持っています.3 data-role:page divs 1つでindex.phpです。最初のページは単に背景画像で、input type="tel"position:fixedで、画面の中央に表示されます。私がiPhoneに直接サイトを読み込むと、スタイルと位置はすべて正しいです。jQuery外部リンクからのスタイルのないモバイル入力

ただし、パラメータ(例:?event=123123123、ランダムな文字列)を渡す外部リンクを介してサイトにアクセスします。このようにロードすると、最初のページは常にスタイルがなくなってロードされます。すなわち、入力ボックスは、インラインであるか、外部ファイルからロードされたかなど、jquery.cssと私自身のすべてのcssを無視します。私はページをリフレッシュし、スタイルがキックインし、それが想定されているように見えます。

$('#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:

は、私のような、たとえばなど、pageinitpagebeforeloadpageshow結合のような基本的に私は考えることができるすべてのもの(そしておそらくさえも意味を成さないものの多くを)試してみました「壁のすべてをスローし、何がスティックになっているかを見て、欲求不満の段階に達しました。

内部リンクを変更する方法について多くの情報が見つかりました(例:rel=external)が、なぜこのようなことが起こるのか説明できないようです。

外部パラメータを渡すとスタイルが読み込まれないのはなぜですか?

答えて

0

パラメータについては、JQMのドキュメントをお読みください。また$('.ui-page').trigger('create');代わりの$('#formbox').trigger('create');

はページ

間のパラメータの受け渡しをしてみてくださいjQueryのモバイルは、内部/埋め込まれたページに渡すクエリ パラメータをサポートしていません。たとえば、 フレームワークに「#somePage?someId = 1」というリンクがある場合は、それを 「#somePage」と解釈し、IDが somePageの内部ページdivに移動し、#somePageのdata-urlを適用します?someId = 1そのページに コンテナ。 jQuery Mobile は、一度しか設定されていないdiv35上のdata-urlを参照しているため、 「#somePage?someId = 2」などの他のパラメータへの呼び出しは同じdivを検索し、は#somePage?someId = 1 。

ページ間にクエリ のクエリが必要な場合、プロジェクトに追加できるプラグインは2つあります。軽量のpage params pluginがあり、backbone.jsまたはspine.jsで使用するより完全な機能のjQuery Mobile router plugin があります。返信用

info source

+0

感謝。私はそれをちょっとばかげたが、最終的に問題は実際には 'に間違って設定されていた。 'スケーリングの問題を解決しました。私はページが320pxでレンダリングしようとしていたと思うが、iphone 4sが使う640の代わりに、ボックスがリフレッシュするまで間違ってレンダリングされる。 – Davezatch

関連する問題