2012-01-22 6 views
0

とページ単位のJavaScriptを呼び出します。これらのページは、すべてregister.phpなどの独立したファイルです。各ファイルには、リテラルjqueryモバイルdiv.pageのように、1つの「ページ」があります。が正しく、私はjqueryの携帯で作られたいくつかのページを持っているjqueryの携帯

私はリンクをクリックすると、Ajaxはこの新しいファイルを呼び出し、div.pageを抽出 - のではなく、標準のリンクのように新しいページをロードします。

私はもともと特定のページ(register.php)のためにonloadイベントにバインドされた機能を、持っています。今は、新しいページを読み込む代わりにajaxを使用しているため、そのページのjavascriptは起動しません。 JQMのドキュメントによると

私はpageinitを(使用する必要が

)またはpagecreate() - 私は、これらのイベントのうちの1つをバインドする必要がありますが、彼らはこれを行う方法を説明していない...

は、おそらく私としてpagecreateすべての要素が準備できたら、私の関数を使う必要があります。しかし、同じスクリプトを使用して1ページを別のページと区別するにはどうすればよいですか?

私は、Ajax経由で引っ張ったときにのみ、それも使用されていないregister.phpのための私の<head>register.jsへのリンクがある場合 - それは唯一の<body>で引っ張るために。

のは、私がregister_form()と呼ばれる機能を持っているとしましょう。 register.phpが開かれるたびに、これをどのように呼び出すのですか?これには、戻るボタンをクリックすることも含まれます。

私は、ここにjQuery Mobile - pageinit and pagecreate only firing onceを見ました。しかし、別のページに行くと、新しいページのIDは追加されません。

答えて

2

私は(私は最後jqmを使用するので、彼らはそれを変更していない限り)それはだと信じて...

$(document).bind('pageshow', function (e) { 
    // ... 
}); 
+0

ああ... pageshowのは、私が探していたイベントのように見えます。そして第2引数は、要素の一つは、(dataUrl(列) ページを識別するときに使用するabsUrlのフィルタリングされたバージョン)アレイです。 –

+0

実際には、これはページに移動する場合にのみ機能します。あなたがページに直接着陸するときにそれを呼び出す必要がある場合はどうなりますか? –

+0

ページが表示されるたびに 'pageshow'が起動すると思います。 jQMの仕組みは、一度ページが閲覧されると、そのセッションで永続的にキャッシュされます。それが再び表示された場合、それは 'pageshow'が別の場所で起動される場所です。あなたが最初にページを表示するときに何かを実行したいだけなら、 'pageinit'はあなたが望むものでなければなりません。 –

関連する問題