我想知道下面概述的注入动态内容的过程是否有条不紊地正确。该方法基于 jQM 的Dynamic Page Generation文档中描述的一段稍作修改的代码,该代码取消了明显的声明 ($.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?).
}