回答編集履歴

4

ed

2022/09/19 08:32

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -33,8 +33,9 @@
33
33
  現状のHTMLには存在しないため、空のオブジェクトになり、空のオブジェクトには何も定義されていないため
34
34
  `$(...).offset() is undefined`となっているわけですね。
35
35
 
36
- 本件のみを確認するためには不要なjsファイルやCSSファイルが読み込まれているようなので、
36
+ 本件のみを確認するためには無関係なjsファイルやCSSファイルが読み込まれているようなので、
37
37
  こちらで勝手に削除したところもあり、質問者さんと全く同じコードにはなってないと思いますが、
38
38
  適当な要素にその名前のIDを与えたらその要素のところまでスクロールするようにはなりました。
39
39
 
40
40
  操作や使いたい要素、対象の要素が間違いなくHTML上にあることは確認してください。
41
+ ※もちろん様々な影響があるので、個々の機能「だけ」に必要な要素で動作確認をしてから結合するようにしてください。

3

ed

2022/09/19 08:30

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -16,7 +16,7 @@
16
16
  ```
17
17
  offset()使ってる箇所というと以下
18
18
 
19
- > offset()
19
+ > var HashOffset = $(Hash).offset().top;
20
20
 
21
21
  でおそらく問題は
22
22
  > var Hash = $(this.hash);

2

ed

2022/09/19 08:30

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -7,4 +7,34 @@
7
7
 
8
8
  jQuery本体が複数読み込まれているのも問題になり得ます。
9
9
 
10
+ 更に
11
+ ----
10
12
 
13
+ ブラウザ開発ツールのコンソール確認するとエラー出てるようです。
14
+ ```console
15
+ Uncaught TypeError: $(...).offset() is undefined
16
+ ```
17
+ offset()使ってる箇所というと以下
18
+
19
+ > offset()
20
+
21
+ でおそらく問題は
22
+ > var Hash = $(this.hash);
23
+
24
+ ここでHashが空のオブジェクトではないかという点。
25
+ ```
26
+ var Hash = $(this.hash);
27
+ console.log(Hash) //Object { }
28
+ ```
29
+
30
+ 上記の通り。
31
+ `this.hashの値で指定可能なセレクタを持った要素があるか`ということになります。
32
+ this.hashは`#wrapper`となっているようなので、wrapperというidを持った要素があるかどうかで、
33
+ 現状のHTMLには存在しないため、空のオブジェクトになり、空のオブジェクトには何も定義されていないため
34
+ `$(...).offset() is undefined`となっているわけですね。
35
+
36
+ 本件のみを確認するためには不要なjsファイルやCSSファイルが読み込まれているようなので、
37
+ こちらで勝手に削除したところもあり、質問者さんと全く同じコードにはなってないと思いますが、
38
+ 適当な要素にその名前のIDを与えたらその要素のところまでスクロールするようにはなりました。
39
+
40
+ 操作や使いたい要素、対象の要素が間違いなくHTML上にあることは確認してください。

1

ed

2022/09/19 07:48

投稿

m.ts10806
m.ts10806

スコア80765

test CHANGED
@@ -1,3 +1,10 @@
1
1
  省略の中がどうなっているか分かりませんが、
2
2
  JavaScriptがjQueryの機能利用前提で組まれているのでjQuery本体を先に読み込まないことには動作しません。
3
3
  ブラウザ開発ツールのコンソールにエラーも出ているのではないでしょうか。
4
+
5
+ 追記のコードから
6
+ ----
7
+
8
+ jQuery本体が複数読み込まれているのも問題になり得ます。
9
+
10
+