3

によって読み込まれたアクティブなページ要素の ID を取得する必要があります。を使用$.mobile.activePageして現在のページを表示できること、および を使用してこの要素の ID を取得できることはわかってい$.mobile.activePage.attr('id')ます。ただし、undefinedアプリケーションの最初のロード時です。私の特定のアプリケーションでは、ユーザーが任意の URL から入力できるようにしたいと考えており、ナビゲーション システムを適切に初期化するために、現在読み込まれているページを知る必要があります。

$(document).bind('pageinit', function() { 
    if($.mobile.activePage !== undefined) {
        console.log($.mobile.activePage.attr('id'));
    }
    else {
        console.log('1st page load detected');
    }
});

出力: 1st page load detected最初のロード時と後続のすべてのページの ID。最初のロードで ID を取得するにはどうすればよいですか?!?

4

1 に答える 1

11

あなたの問題は、pageinitがアクティブなページクラスを照会するには早すぎることだと思います。

最初のページをロードすると、最初のページへの changePage が呼び出される前に pageinit が起動します (最初のページも changePage 呼び出しによってロードされます)。JQM の @about 行 3639 のみで、アクティブなページ クラスがページに割り当てられます。

その時までに、pageinit はとうの昔になくなっています。

最初のページの ID を取得したい場合は、他の使用可能なページ イベントを使用します。

pagebeforeload = triggered before the load request (inside changepage) is made
pageload = triggered after the page was loaded
pagebeforechange = triggered before a changepage is made
pagechange = triggered after changepage is done
pagebeforeshow = triggered before the page is shown
pageshow = triggered when the page is shown

pagebeforeshow を使用するか、多くのコンテンツを微調整したい場合は、pagechange または pagebeforechange を試してください。

それが役立つことを願っています!

于 2012-05-19T23:55:30.630 に答える