回答編集履歴
5
不要な部分を削除
test
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
if(hash) {
|
30
30
|
$(hash).show();
|
31
31
|
$(".current").removeClass("current");
|
32
|
-
$(
|
32
|
+
$(`nav ul a[href='${hash}']`).addClass("current");
|
33
33
|
}
|
34
34
|
$("nav ul a").click(function(){
|
35
35
|
$("#contents > div").hide();
|
4
コードブロックにしていなかったため
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
答えのコードをまるまる記述
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
分かりやすいようにコードの変更
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
文章の変更
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
コンテンツの表示処理のトリガーを現在はクリックにして
|
1
|
+
コンテンツの表示処理のトリガーを現在はクリックにしているため、クリック時に処理が行われると思うのですが、[「DOMが構築されたら実行される。」](https://on-ze.com/archives/1851)をトリガーにしてみてはどうでしょうか?その後はhashを取得し、hashの有無で条件分岐し、hashがあればコンテンツを表示する処理を行う。
|
2
2
|
```javascript
|
3
3
|
$(function() {
|
4
4
|
// ↓ここにも処理を書いてみてはどうでしょうか ロードされた時(正確にはDOMが構築された時)の処理
|