動的コンテンツを挿入するための以下に概説する手順が整然と正しいかどうか疑問に思います。このアプローチは、jQM のDynamic Page Generation doc で説明されているコードをわずかに変更した部分に基づいており、目立つステートメント ($.mobile.changePage) を削除しています。
ページが 2 つの仮想ページ ("pgActLst" と "pgActDet") で構成されているとします。仮想ページ「#pgActLst」には、PK を介して特定の範囲のさまざまなアクティビティを指すアンカーのコレクションが含まれています。「#pgActDet」は、選択した PK に関連付けられたアクティビティの詳細を示します。
私の質問は、$.mobile.changePage("#pgActDet") の使用法です。私の場合(アンカー)、このステートメントを含めると不要になるようです(実際には無限ループが発生します)。コードがコンテンツを正しく更新することに注意してください。以下に概説するアプローチは健全ですか、それとも長期的には私を苦しめる可能性がありますか? 私が見る限り、ステップ S1 は S2 の前に起動します。
// S1. Specify the firing event.
$("a", "#divActLst").live("click", function (e) {
.. // Update local storage with selected ActID PK (The PK is retrieved in evt "pagebeforechange").
})
// S2. If the target URL points to "pgActDet", retrieve activity details via a web service and
// dynamically fill up divActDet.
$(document).bind("pagebeforechange", function (e, data) {
// Check if the target url matches "pgActDet"
var url = $.mobile.path.parseUrl(data.toPage), reg = /^#pgActDet/;
if (url.hash.search(reg) == 0) {
.. // Pull PK actID and txt info from local storage.
GetActDet(actID, txt); // Call up web service and refresh details content.
};
)}
// S3. Inject html if web service qry GetActDet() is successful.
function GetActDetOK() {
.. // Fill up divActDet and bind events.
//$.mobile.changePage("#pgActDet"); // Seems unecessary. (Is this ok?).
}