アンカー要素がクリックされたときにユーザーを Web ページの下部に移動させるために、スクリプトを使用しています。
最初に、$(document).ready() 関数内でコードを呼び出して、DOM が読み込まれるとすぐにすべてが実行されるようにしました。次に、モバイル サイトのページ間を移動したときに、スクリプトが機能していないことに気付きました。
$(document).ready(function(){
$("#menu-button").click(function(){
$(document).scrollTop($(".mainFooter").position().top);
});
});
ただし、jQuery Mobile では、ナビゲートするときに Ajax を使用して各ページのコンテンツを DOM にロードし、DOM 対応ハンドラーは最初のページに対してのみ実行される理由がわかりました。新しいページがロードされて作成されるたびにコードを実行するには、このページの下部に記載されている pageinit イベントにバインドできます: http://jquerymobile.com/demos/1.1.1/docs/api/ events.html
pageinit イベントにバインドしましたが、別のページ間を移動してから同じアンカーをクリックしても、アンカーはユーザーをページの下部に移動しません。pageinit にバインドしても問題が解決しない理由を理解するのに苦労しています。
$(document).bind('pageinit', function() {
$("#menu-button").on('click.menu', function(){
$(document).scrollTop($(".mainFooter").position().top);
});
});
jQuery モバイルで AJAX をオフにできることを認識しています。これにより、コードを $(document).ready() 関数で実行できるようになります。これを行うことで、目的の機能を実現することができました。理想的には、ページがAJAXでロードされるたびにアンカーが機能するように、AJAXを有効にしてpageinitを動作させたいと思います。
どんな提案でも大歓迎です。