回答編集履歴

2

inline event handler

2022/11/23 09:20

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -29,5 +29,17 @@
29
29
 
30
30
  ---
31
31
 
32
- ##### おまけ
33
- 複数要素対応版サンプル:https://jsfiddle.net/t3Lz8juw/2/
32
+ ### おまけ
33
+ ##### 複数要素対応
34
+ htmlタグの中にカスタムデータ属性をかいて、それを利用するといいと思います。
35
+ - 複数要素対応版サンプル:https://jsfiddle.net/t3Lz8juw/2/
36
+
37
+ ##### イベントの扱いについて
38
+ 質問者様のように`<input type="color" onChange="setBGcolor2(this.value);">`と、htmlの中に書く方法はインラインイベントハンドラーと呼ばれています。
39
+ 現在は非推奨です。
40
+
41
+ > Web 上で見かける最初期のイベントハンドラー登録方法には、上の例のようなイベントハンドラー HTML 属性(インラインイベントハンドラーとも言う)があります (中略)多くのイベントハンドラープロパティと等価な HTML 属性を見付けるでしょうが、使うべきではありません — こういうのは悪い方法とみなされています。ちょっとした事を手早く片づけたい時、イベントハンドラー属性を使うのが簡単に思えるかもしれませんが、あっという間に手がつけられない、効率の悪いものになってしまいます。
42
+ (引用元:[イベントへの入門 - ウェブ開発を学ぶ | MDN#インラインイベントハンドラー — 使っちゃだめ ](https://developer.mozilla.org/ja/docs/Learn/JavaScript/Building_blocks/Events#%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%83%8F%E3%83%B3%E3%83%89%E3%83%A9%E3%83%BC_%E2%80%94_%E4%BD%BF%E3%81%A3%E3%81%A1%E3%82%83%E3%81%A0%E3%82%81))
43
+
44
+ 代わりに`.addEventListener()`が推奨されています。
45
+

1

おまけ

2022/11/23 08:34

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -26,3 +26,8 @@
26
26
  msgArea.style.background = `linear-gradient(${color1}, ${color2})`;
27
27
  }
28
28
  ```
29
+
30
+ ---
31
+
32
+ ##### おまけ
33
+ 複数要素対応版サンプル:https://jsfiddle.net/t3Lz8juw/2/