回答編集履歴
2
表現の修正
test
CHANGED
@@ -32,9 +32,9 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
-
- clickイベントハンドラ関数を2回定義
|
35
|
+
- clickイベントハンドラ関数を2回定義している部分を「1回定義して変数にキャッシュ」に変更
|
36
|
-
|
36
|
+
|
37
|
-
- 「class="js-open"」の要素をclickする度に検索している
|
37
|
+
- 「class="js-open"」の要素をclickする度に検索している部分を「変数にキャッシュ」に変更
|
38
38
|
|
39
39
|
|
40
40
|
|
1
querySelectorAll() の第一引数に配列を渡しても動作する理由
test
CHANGED
@@ -126,6 +126,12 @@
|
|
126
126
|
|
127
127
|
|
128
128
|
|
129
|
+
`querySelectorAll()` の第一引数に配列を渡しても動作するのは、querySelectorAll() が内部的にString型への変換を行っており、変換後の文字列が「カンマ区切りのセレクタ文字列」になる為です。
|
130
|
+
|
131
|
+
「カンマ区切りのセレクタ文字列」(`'.header__nav-btn,.cover-darken'`)を渡しても同じ結果となりますが、質問文のコードはクラスセレクタを個別に管理していた為、ここでは配列としました。
|
132
|
+
|
133
|
+
|
134
|
+
|
129
135
|
初めに下記要件を定義しましたが、これは「class="js-open"」な要素が複数存在した場合、`querySelector('js-opened')` によって初めの一つにのみ反応するからです。
|
130
136
|
|
131
137
|
|