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

回答編集履歴

1

edit

2021/02/09 09:42

投稿

m.ts10806
m.ts10806

スコア80888

answer CHANGED
@@ -11,4 +11,73 @@
11
11
 
12
12
  を意識されたら良いかと思います。
13
13
 
14
- あとは適宜ドキュメントを参照。
14
+ あとは適宜ドキュメントを参照。
15
+
16
+ ---
17
+
18
+ 「やりたいこと」を元に「どれが関数でどれが引数でどこが文末か」を意識できていれば、
19
+ 今回のようなミスは防ぐことができます。
20
+ 「上から順番に書く」のではなく「機能まとまりから書く」ことを意識。
21
+ つまり、「どこに関数を置いてその関数の何番目にどんな引数を置くか」をきちんと分解して考えられるようになる必要があります。
22
+
23
+ jQueryの基本系は「セレクタ」に対して「何かしらイベントや処理を呼び出す」です。
24
+ 関数の呼び出しは 関数名()とう原則から
25
+ `$()`自体が関数であることになります。`$()`は`jQuery()`のエイリアス(別名、短縮形)。
26
+
27
+ あとはこの関数に引数を与えていくことで動作するわけです。
28
+
29
+ 基本系を書く
30
+ ```js
31
+ $()
32
+ ```
33
+ 呼び出したいセレクタ
34
+ ```js
35
+ $("#button")
36
+ ```
37
+ それに対する関数(関数の呼び出し結果に対して関数を呼び出す方式がとられています)
38
+ ```js
39
+ $("#button").on();
40
+ ```
41
+ 文末なので;もつけておく
42
+
43
+ [on()](https://api.jquery.com/on/)関数の機能を確認
44
+ 引数1つ目はイベント
45
+ ```js
46
+ $("#button").on('click');
47
+ ```
48
+
49
+ 今回は間のselectorやdataはないので、引数2つ目はhandler(function)
50
+ ```js
51
+ $("#button").on('click',function(){});
52
+ ```
53
+ 読みやすいように改行
54
+ ```js
55
+ $("#button").on('click',function(){
56
+
57
+ });
58
+ ```
59
+
60
+ あとはhandler内に処理を書いていく
61
+ ```js
62
+ $("#button").on('click',function(){
63
+ var atai = $("input[type=text]").value();
64
+ alert("atai");
65
+ });
66
+ ```
67
+
68
+ 私も以前は下記を毎回どこかに控えておいてコピペしてましたが、
69
+ ```js
70
+ $(function(){
71
+ });
72
+ ```
73
+ 「機能で分解して理解する」ことを意識しだしてからは見なくても書けるようになりました(あとはやはりドキュメントのおかげか)
74
+
75
+ なので、「分解」という観点から、変数を利用してこんな感じにも書けることが分かると思います(未検証)
76
+ ```js
77
+ let btn = $("#button");
78
+ let clickFunc = function(){
79
+ var atai = $("input[type=text]").value();
80
+ alert("atai");
81
+ }
82
+ btn.on('click',clickFunc);
83
+ ```