0

私はかなり基本的なjqueryモバイルページを持っていますdata-role:page.1つの3つのdivindex.phpです。最初のページは単なる背景画像input type="tel"position:fixed、画面中央に があります。サイトを iPhone に直接ロードすると、スタイルと配置がすべて正しくなります。

?event=123123123ただし、ユーザーは、パラメータ (ランダムな文字列など)を渡す外部リンクを介してサイトにアクセスします。この方法でロードすると、最初のページは常にスタイルなしでロードされます。つまり、入力ボックスは、インラインであるか、ヘッドで宣言されているか、外部ファイルからロードされているかに関係なく、jquery.css と自分自身の両方のすべての css を無視します。ページを更新すると、スタイルが有効になり、想定どおりに表示されます。

pagebeforeload私は基本的に、pageinit、などへのバインドなど、考えられるすべてのこと (およびおそらく意味をなさない多くのこと) を試しましたpageshow。たとえば、次のようにします。

$( '#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" );
});

私はフラストレーションの「壁にすべてを投げて、何が固執するかを確認する」段階に達しましたが、何も固執していません。

内部リンク (例: ) を変更する方法に関する多くの情報を見つけましrel=externalたが、これが発生する理由を説明するようなものは何も見つかりませんでした。

外部パラメータを渡すとスタイルがロードされないのはなぜですか?

4

1 に答える 1

0

パラメータに関するJQMのドキュメントを読むことをお勧めします。また$('.ui-page').trigger('create');、代わりに試してください$('#formbox').trigger('create');

ページ間でのパラメータの受け渡し

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

ページ間でクエリパラメータが必要な場合にプロジェクトに追加できるプラグインは2つあります。軽量のページパラメータプラグインと 、backbone.jsまたはspine.jsで使用するためのより完全な機能を備えたjQueryMobileルータープラグインがあります。

情報源

于 2012-04-24T10:41:15.807 に答える