重新加载页面或直接导航到 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)。