0

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

4

1 回答 1

3

是的,我遇到了同样的问题。

要在页面 init 上执行一些 javascript 代码,请使用以下结构:

$(document).bind("mobileinit", function(){
    $('#mainPage').live('pageshow', function(){
        // Some Javascript code
    });
});

现在我可以在页面被调用时一直执行代码。

于 2012-08-27T06:59:06.593 回答