私の場合、操作に応じたページ移動の実現のために、こういうコードを書いています。
基本的に、全ページをグループとして一括非表示して、その後に指定ページを表示するのですが、その前後に、そのページの更新用メソッドを呼び出しています。
updateとshowの2種類があるのは、私はSwiperというスライダーライブラリを利用しているからです。
html
1<div class="page" id="index" style="display:none;">
2 <header></header>
3 <div class="main">
4 <button data-page="news">ニュース</button>
5 <button data-page="order">注文</button>
6 </div>
7 <footer></footer>
8</div>
9
10<div class="page" id="news" style="display:none;">
11 <header></header>
12 <div class="main"></div>
13 <footer></footer>
14</div>
15
16<div class="page" id="order" style="display:none;">
17 <header></header>
18 <div class="main"></div>
19 <footer></footer>
20</div>
21
22<script>
23// ページ総合制御オブジェクト
24var pages = {};
25
26// ページ遷移設定
27var Page = function(page){
28 $(".page").hide();
29 pages[page] && pages[page].update && pages[page].update();// そのページの設定があるときだけメソッドを呼び出す
30 $("#" + page).show();
31 pages[page] && pages[page].show && pages[page].show();
32};
33$(".page").on("click","[data-page]",function(){
34 Page($(this).data("page"));
35});
36
37pages.index = {};
38pages.index.update = function(){
39 // そのページ内のinput要素の調整など
40}
41pages.index.show = function(){
42 // SwiperのonResizeメソッドは表示後じゃないと正常動作しない
43}
44
45Page("index");//最初はindexを表示
46// newsページを表示させたいならPage("news");
47
48</script>
この構成なら、HTML側でページや移動先リンクを増やしたとしても、特にjavascriptを変更せずともとりあえずは動作しますので、メンテナンスが楽にできます。