回答編集履歴
2
コード修正
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
コード例修正
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
|
```
|