アイテムのタップ イベントをキャプチャし、タップされたアイテムの詳細を含む読み込まれたページ (同じ html ファイル) を表示する必要があるシナリオに遭遇しました。ただし、私が見つけた解決策は、いくつかのことに半依存しています。
- .js スキームは、グローバル オブジェクトにとって重要なものを上書きしたり、外部コードによって上書きされたりしないように、少なくとも 1 つの「名前空間」またはグローバル オブジェクトのプロパティに含める必要があります。
- データは .js オブジェクトに既に存在している必要があり、または他の方法でアクセスできる必要があります。
ページ遷移を引き起こす要素 (またはページ遷移を引き起こす問題のある関数内) にタップ イベントをアタッチすると、次のように関数を作成できます。
function PageTransitionHandle(oEvent)
{
// Set your stored data to a global object
oYourNamespace.DataObject = oDataObject;
// not necissary if already linked to other page but useful when attaching to
// an image or other element
$.mobile.changePage("#otherPageId");
}
そして、次のページの pageshow イベントで:
function PageInit()
{
var oPageData = oYourNamespace.DataObject;
// Handle using data from here (i.e calling webmethod using parameters
// or setting data according to object)
}
ajax 読み込みメソッドが使用されているため、これは外部ページと内部ページで機能する可能性がありますが、テストしていません。これは、パラメーターやデータ オブジェクト全体を渡して他のフィールドを定義したり、ユーザー情報をそれらに追従させたりするのに役立ちます。
注目すべきもう 1 つのルートはLocal Storageですが、個人的にはまだあまり調べていません。