我在 JQM 中运行一个动态页面生成器,并且正在努力让它正常工作。
当用户单击链接时,我会changePage
像这样拦截调用:
...
.on("pagebeforechange", function (e, data) {
if (typeof data.toPage === "string") {
init.parsePage(util.parseLink(data.toPage), true);
e.preventDefault();
}
})
这将调用我的parsePage
方法,该方法生成一个新页面,初始化并将其附加到 DOM,如下所示:
$(document).enhanceWithin();
$.mobile.initializePage();
// go to the new page
$.mobile.changePage("#" + config.id);
我的问题是,使用e.preventDefault()
和新的 changePage 调用将pagebeforechange
再次被我的监听器捕获并永远循环。我还尝试不阻止初始 changepage 调用并仅修改data.toPage
参数,但是我的页面组装需要“太长时间”并且无法延迟 JQM 直到组装页面。
问题:
我如何触发一个没有被我的听众“抓住”或更好的新转换,我如何延迟 JQM 转换直到一切准备就绪(在这里有承诺会很好:-)
谢谢!