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

回答編集履歴

2

コード修正

2021/04/14 01:29

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -1,4 +1,4 @@
1
- 例2が期待どおりに動かないのは、例2でイベントリスナでクリックされた要素以外を一切操作していないからです。例2で、`tes` と `event.target` は同じ要素です。`tes.classList.remove('active')` を `document.querySelector('textarea.active').classList.remove('active')` とでも変えれば動くでしょう。
1
+ 例2が期待どおりに動かないのは、例2でイベントリスナでクリックされた要素以外を一切操作していないからです。例2で、`tes` と `event.target` は同じ要素です。`tes.classList.remove('active')` を `document.querySelector('textarea.active')?.classList.remove('active')` とでも変えれば動くでしょう。
2
2
 
3
3
  例1が期待どおり動くのは、イベントリスナが `text` の個数ぶん登録されていて、それぞれが別の `tes` を参照していて、どこをクリックされてもすべてのイベントリスナが呼ばれるからです。
4
4
 

1

コード例修正

2021/04/14 01:29

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  let t = event.target;
10
10
  if (t.nodeName != 'TEXTAREA')
11
11
  return;
12
- document.querySelector('textarea.active').classList.remove('active');
12
+ document.querySelector('textarea.active')?.classList.remove('active');
13
13
  t.classList.add('active');
14
14
  });
15
15
  ```