回答編集履歴

5

不要な部分を削除

2022/03/01 16:54

投稿

george
george

スコア289

test CHANGED
@@ -29,7 +29,7 @@
29
29
  if(hash) {
30
30
  $(hash).show();
31
31
  $(".current").removeClass("current");
32
- $($(`nav ul a[href='${hash}']`)).addClass("current");
32
+ $(`nav ul a[href='${hash}']`).addClass("current");
33
33
  }
34
34
  $("nav ul a").click(function(){
35
35
  $("#contents > div").hide();

4

コードブロックにしていなかったため

2022/03/01 14:43

投稿

george
george

スコア289

test CHANGED
@@ -21,6 +21,7 @@
21
21
  ---
22
22
  **追記**
23
23
  下記のコードに置き換えれば多分期待する動作になると思います。
24
+ ```javascript
24
25
  //表示させたいコンテンツの記載
25
26
  $(function(){
26
27
  $('#contents > div').hide();
@@ -38,4 +39,5 @@
38
39
  return false;
39
40
  });
40
41
  });
42
+ ```
41
43
 

3

答えのコードをまるまる記述

2022/03/01 14:42

投稿

george
george

スコア289

test CHANGED
@@ -18,3 +18,24 @@
18
18
  });
19
19
  });
20
20
  ```
21
+ ---
22
+ **追記**
23
+ 下記のコードに置き換えれば多分期待する動作になると思います。
24
+ //表示させたいコンテンツの記載
25
+ $(function(){
26
+ $('#contents > div').hide();
27
+ var hash = location.hash;
28
+ if(hash) {
29
+ $(hash).show();
30
+ $(".current").removeClass("current");
31
+ $($(`nav ul a[href='${hash}']`)).addClass("current");
32
+ }
33
+ $("nav ul a").click(function(){
34
+ $("#contents > div").hide();
35
+ $($(this).attr("href")).show();
36
+ $(".current").removeClass("current");
37
+ $(this).addClass("current");
38
+ return false;
39
+ });
40
+ });
41
+

2

分かりやすいようにコードの変更

2022/02/28 23:30

投稿

george
george

スコア289

test CHANGED
@@ -1,18 +1,20 @@
1
1
  コンテンツの表示処理のトリガーを現在はクリックにしているため、クリック時に処理が行われると思うのですが、[「DOMが構築されたら実行される。」](https://on-ze.com/archives/1851)をトリガーにしてみてはどうでしょうか?その後はhashを取得し、hashの有無で条件分岐し、hashがあればコンテンツを表示する処理を行う。
2
2
  ```javascript
3
3
  $(function() {
4
-   // ↓ここにも処理を書いてみてはどうでしょうか ロードされた時(正確にはDOMが構築された時)の処理
4
+   // ↓ここにも処理を書いてみてはどうでしょうか ロードされた時(正確にはDOMが構築された時)の処理
5
-  var hash = location.hash;
5
+   var hash = location.hash;
6
- if(hash) {
6
+ if(hash) {
7
- $(hash).show();
7
+ $(hash).show();
8
- }
8
+ }
9
+ // ↑ここまで
10
+
9
-   // ↓クリック時の処理
11
+   // ↓クリック時の処理
10
12
  $("nav ul a").click(function(){
11
- $("#contents > div").hide();
13
+ $("#contents > div").hide();
12
- $($(this).attr("href")).show();
14
+ $($(this).attr("href")).show();
13
- $(".current").removeClass("current");
15
+ $(".current").removeClass("current");
14
- $(this).addClass("current");
16
+ $(this).addClass("current");
15
- return false;
17
+ return false;
16
- });
18
+ });
17
19
  });
18
20
  ```

1

文章の変更

2022/02/28 23:27

投稿

george
george

スコア289

test CHANGED
@@ -1,4 +1,4 @@
1
- コンテンツの表示処理のトリガーを現在はクリックにしており、クリック時に処理が行われると思うのですが、[「DOMが構築されたら実行される。」](https://on-ze.com/archives/1851)をトリガーにしてみてはどうでしょうか?その後はhashを取得し、hashの有無で条件分岐し、hashがあればコンテンツを表示する処理を行う。
1
+ コンテンツの表示処理のトリガーを現在はクリックにしているため、クリック時に処理が行われると思うのですが、[「DOMが構築されたら実行される。」](https://on-ze.com/archives/1851)をトリガーにしてみてはどうでしょうか?その後はhashを取得し、hashの有無で条件分岐し、hashがあればコンテンツを表示する処理を行う。
2
2
  ```javascript
3
3
  $(function() {
4
4
    // ↓ここにも処理を書いてみてはどうでしょうか ロードされた時(正確にはDOMが構築された時)の処理