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

質問編集履歴

3

テストコード追加しました

2020/05/28 12:56

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -155,7 +155,23 @@
155
155
  </div>
156
156
  </div>
157
157
  ```
158
+ ```js
159
+ //テストコード
160
+ {
161
+ const btn = document.getElementById('btn');
158
162
 
163
+ function callback() {
164
+ btn.classList.add('active');
165
+ }
159
166
 
167
+ btn.addEventListener('click',callback);
168
+ }
169
+
170
+ ```
171
+ ```HTML
172
+
173
+ ```
174
+
175
+
160
176
  ### 補足情報
161
177
  mac、VScode使用。

2

コールバック関数を使ってコードを書いてみました

2020/05/28 12:56

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -81,19 +81,10 @@
81
81
  let success = document.getElementById('success');
82
82
  let good = document.getElementById('good');
83
83
  let cheer = document.getElementById('cheer');
84
- function getScore() {
84
+      function score(callback) {
85
- let point = 0;
86
- const imgs = document.querySelectorAll('img');
87
- console.log(imgs);
85
+ callback();
88
- for(let i =0; i < imgs.length; i++ ) {
89
- imgs[i].addEventListener('click', () => {
90
- if(imgs[i].classList.contains('mole') === true) {
91
- return point++;
92
- }
86
+ }
93
-
94
- });
87
+
95
- }
96
- }
97
88
 
98
89
  btn.addEventListener('click',() => {
99
90
  btn.classList.add('start');
@@ -102,14 +93,25 @@
102
93
  panel.spin();
103
94
  })
104
95
  if(btn.classList.contains('start') === true) {
96
+
105
- let score = getScore();
97
+ function getScore() {
98
+ const imgs = document.querySelectorAll('img');
99
+ for(let i =0; i < imgs.length; i++ ) {
100
+ imgs[i].addEventListener('click', () => {
101
+ if(imgs[i].classList.contains('mole') === true) {
102
+ point++;
103
+ console.log(point);
104
+ }
105
+ });
106
+ }
107
+ };
106
- console.log(score);//ここでundifindと表示されます。
108
+ const totallScore = score(getScore);//
107
109
  let timer = document.getElementById('timer');
108
110
  if(timer.textContent === '0 秒') {//タイマーが0秒になった時に点数に応じて条件分岐する
109
- if(score >= 7) {
111
+ if(totallScore >= 7) {
110
112
  success.style.display ='block';
111
113
  success.classList.add('block');
112
- }else if(point >= 5) {
114
+ }else if(totallScore >= 5) {
113
115
  good.style.display ='block';
114
116
  good.classList.add('block');
115
117
  }else{

1

undifindがどこで表示されるのか記載しました。

2020/05/27 14:23

投稿

kaaaarin
kaaaarin

スコア17

title CHANGED
File without changes
body CHANGED
@@ -5,8 +5,8 @@
5
5
 
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
- 関数呼び出し、変数に代入しているのですが、undifindと表示されます。
8
+ getScore()を変数scoreに代入しているのですが、scoreをconsole.logで確認するとundifindと表示されます。
9
- なぜreturnできないのでしょうか?くお願いたします。
9
+ getScoreはreturnで結果を返すうに記載います。
10
10
 
11
11
 
12
12
  ### 該当のソースコード
@@ -103,9 +103,9 @@
103
103
  })
104
104
  if(btn.classList.contains('start') === true) {
105
105
  let score = getScore();
106
- console.log(score);
106
+ console.log(score);//ここでundifindと表示されます。
107
107
  let timer = document.getElementById('timer');
108
- if(timer.textContent === '0 秒') {
108
+ if(timer.textContent === '0 秒') {//タイマーが0秒になった時に点数に応じて条件分岐する
109
109
  if(score >= 7) {
110
110
  success.style.display ='block';
111
111
  success.classList.add('block');