2011-07-28 20 views
19

jQuery MobileがUIのレンダリングを終了したら、いくつかのコードを実行したいとします。 mobileinitイベントは、の前に発生しています。これは、の前に発生します。簡単なGoogleの検索では、単に$(document).readyを使用してもJQMでは機能しないことがわかります。私はちょうど(mobileinitの後に)それを試してみて、それは私のために働いた:私のコードが実行され、動的に更新された要素などは正常です。だから何か理由があるのですかはそれを使用していてはいけません(信頼できない、またはJQMが壊れている)か、それとも単に不正確な情報があるのでしょうか?私は何が欠けていますか?

更新:デモンストレーションについては、hereを参照してください。

+1

あなたはhttp://stackoverflow.com/questions/5622581/jquery-mobile-document-ready-equivalentを確認しましたか? –

+0

@ George:はい、その質問によれば、 '$(document).ready' *は動作しません。しかし、不思議なことに、私のために、それはします。だから私はちょうどそれが今働くかどうか、または私が知るべきJQMを扱うときに何か変わった問題があるかどうかを調べようとしていると思う。 –

答えて

12

おそらく$(document).readyをjQuery Mobileで使用できないと読んだのは、疑似ページを表示するたびに起動しないということです。つまり、htmlドキュメントが読み込まれるときには、それは引き続き実行されます。

あなたは、あなたがこのコードを使用することができ、擬似ページを表示するたびにトリガーコード実行したい場合:

$('[data-role="page"]').live('pageshow', function() { 
    //run your code here 
}); 

注:あなたが同様に結合することができ、他のフックがありますが(pageshowの、pagehide 、pagebefoershow、pagebeforehide)、ドキュメントはここで見つけることができます:http://jquerymobile.com/demos/1.0b1/docs/api/events.html

---------- ---------- EDIT

私はこのことについて考えていたと$(document).ready()と最もよく似ています"pageshow"イベントにバインドされていない場合、 "pagecreate"イベントにバインドされます。 $ page(page).ready()はページ読み込みごとに一回起動し、 "pagecreate"は疑似ページでも同じですが、 "pageshow"はページが表示されるたびに発生します。

ユーザーがホーム画面からクリックしてから戻るボタンをクリックしてホーム画面に戻ると、ホーム画面のこの2番目(以降)の「表示中」に「ページショー」が発生します。

また、「pageshow」では、ユーザーがバインド先のページに移動する必要があります。

+0

ああ、わかりました。それが「うまくいかない」という考えは、誤解に基づいていたのですか?それはおかしいです;私はこれらの代替アプローチを見て、ドキュメント全体(つまり、jQueryモバイルサイト)で1回だけではなく、各疑似ページが表示される前にイベントが発生するため、理想的ではないと考えました。後者は私が欲しいものです。 –

+0

@ジャスパーあなたは、ベータ版 –

+0

の良いキャッチ、私のブックマークのフォルダを更新する時間を使用するのに最適な、アルファバージョンのAPIイベントにリンクしている... – Jasper

関連する問題