teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

コード訂正

2019/05/12 06:08

投稿

massuguda
massuguda

スコア23

title CHANGED
File without changes
body CHANGED
@@ -47,7 +47,7 @@
47
47
  【Pjax処理】で取得しておいた``{name : contentItems}``から、``state.name``としてコンテンツを表示するというアプローチです。
48
48
  ```jQuery
49
49
  // Pjaxの実行(戻る・進むでのPjax)
50
- $(window).on('popstate', function(e){
50
+ window.addEventListener('popstate', function(e) {
51
51
  $('#main').html(e.state.name);
52
52
  });
53
53
  ```

1

コード簡略化

2019/05/12 06:08

投稿

massuguda
massuguda

スコア23

title CHANGED
@@ -1,1 +1,1 @@
1
- ある条件下の「popstate」では、ブラウザの「進む」が効かなくなる現象について
1
+ ある条件下の「popstate」では、ブラウザの「戻る・進む」が効かなくなる現象について
body CHANGED
@@ -38,23 +38,17 @@
38
38
  ```
39
39
  上記特に問題ないかと思いますが、お聞きしたいのは次の2つの処理です。
40
40
 
41
- 【処理A】では「戻る・進む」が効く一方で、【処理B】では一回戻るとそれ以上戻れず、進むこともできなくなるのです。
41
+ 【処理A】では「戻る・進む」が効く一方で、
42
42
 
43
+ 【処理B】では一回しか戻れない上に、進むがグレーアウトしてクリックできなくなってしまうです。
44
+
43
45
  ###【処理A】
44
46
  まずこちらが問題のない方で、「戻る・進む」が効きます。
45
47
  【Pjax処理】で取得しておいた``{name : contentItems}``から、``state.name``としてコンテンツを表示するというアプローチです。
46
48
  ```jQuery
47
49
  // Pjaxの実行(戻る・進むでのPjax)
48
50
  $(window).on('popstate', function(e){
49
- var state = e.state;
50
- if (state) {
51
- // 履歴があるのでコンテンツを表示
52
- $('#main').html(state.name);
51
+ $('#main').html(e.state.name);
53
- } else {
54
- // 履歴がないので何もしない
55
- history.pushState(null, null, null);
56
- return;
57
- }
58
52
  });
59
53
  ```
60
54
  ###【処理B】