2011-11-11 4 views
3

に移動するとき、私はPlayGame.htmlは、次のどれもありません、しかし、に移行されているjQueryMobileページイベントは異なるhtmlページ

$.mobile.changePage("PlayGame.html", { transition: "slideup"}, true, true) 

を使用して、異なる.htmlのページに移動しようとしている発射ません発砲:

$(document).bind("mobileinit", function() 
{ 
alert(1); 
}); 

$('#gamePage').live('pageinit',function(event, ui) 
{ 
    alert('pageinit'); 
}); 

$('#gamePage').live('pagebeforeshow',function(event, ui) 
{ 
    alert('booooo'); 
}); 

ただし、私がwindow.location.href = "PlayGame.html"を実行すると、すべてが発生します。

私には何が欠けていますか?

おかげ

トム

答えて

20

のjQueryモバイルフレームワークは、AJAXを経由してページをつかむとき、あなたの例のコードはPlayGame.html文書の<head>にそれは含まれませんされている場合。そのため、ページ全体を読み込んだときにカスタムコードが実行され、別のページからリンクをクリックしたときにはカスタムコードが実行されません。

カスタムJavaScriptを1つのファイルに入れてすべてのページに含める(ユーザーが自分のサイトに入ったページに関係なく利用できるようにする)か、カスタムJavaScriptを各ページは各ページの<div data-role="page">要素に格納されます(したがって、ページがDOMにプルされるときにインクルードされます)。

外部ファイルへのリンクをクリックすると、jQuery MobileはAJAXを使用して<div data-role="page">要素の最初のインスタンスを取り出し、その要素を現在のDOMに配置するため、ドキュメント内のその他すべてが破棄されるためです。ここで

は、いくつかは、jQueryのモバイルナビゲーションがどのように機能するかについて読んで示唆している:http://jquerymobile.com/demos/1.0rc2/docs/pages/page-navmodel.html

+1

おめでとうとクラブへようこそ@Jasper http://stackoverflow.com/badges/1115/jquery-mobile –

+0

これは非常に有用でした!ありがとう:) – matsr

関連する問題