重新加载页面或直接导航到jQuery Mobile哈希URL不会触发pageinit甚至一次。例如,我在我的辅助页面上尝试过这个:
$(function () {
$(page).bind('pageinit', function () {
console.log('bind pageinit');
});
$(document).on('pagecreate', page, function () {
console.log('pagecreate');
});
$(document).on('pageshow', page, function () {
console.log('pageshow');
});
$(document).on('pageinit', page, function () {
console.log('pageinit');
});
});
在第一页上,我点击进入第二页,上面的生命周期被写入控制台。该URL还附加了#two。这很好,但是当转到另一台机器上的链接时,页面init不会触发。似乎只有一个按钮点击就可以触发页面初始化。
我在这里有一个实例:http://dl.dropbox.com/u/5986646/jqm-pageinit.html。将其粘贴到URL中并且事件不会触发:http://dl.dropbox.com/u/5986646/jqm-pageinit.html#two(注意哈希URL)。
答案 0 :(得分:3)
是的,我遇到了同样的问题。
要在页面init上执行一些javascript代码,请使用以下结构:
$(document).bind("mobileinit", function(){
$('#mainPage').live('pageshow', function(){
// Some Javascript code
});
});
现在我可以在调用页面的所有时间执行代码。