这就是我想要做的事情:
当我尝试使用pageinit
函数时:
$(document).bind('pageinit', function(evt) {
console.log(evt);
}
控制台日志显示它被调用了29次!
一切都在一个HTML页面上,我正在使用$.mobile.changePage()
来更改页面。所以我尝试了这个黑客:
$(document).bind('pagebeforeshow', function(evt, pg) {
if (pg.prevPage.length==0) {
/* first page = code executed once */
var pg = $('#page-basket'),
footer = pg.children( ":jqmData(role=footer)" );
footer.hide().trigger('updatelayout');
AjaxGetBasket( function(data) { console.log('ajax basket ok'); });
}
});
但布局永远不会更新。
如何修改页面,但一开始只一次
。答案 0 :(得分:0)
尝试委派pageinit
事件处理程序,使其仅在#page-basket
初始化时运行:
$(document).on("pageinit", "#page-basket", function() {
$(this).children(":jqmData(role=footer)").hide().trigger("updatelayout");
AjaxGetBasket(function(data) {
console.log("ajax basket ok");
});
});
答案 1 :(得分:0)
我不明白你的问题是否已经解决,但我在问题中解释的情况相同,我已经解决了将函数绑定到pagecreate事件的问题:
$(document).bind("pagecreate", function(e){
// call ajax and update the DOM of first 'page'
});
就是这样。