質問編集履歴

2

追記

2019/02/07 08:04

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -109,3 +109,111 @@
109
109
 
110
110
 
111
111
  ```
112
+
113
+
114
+
115
+ 【追記】
116
+
117
+ イベントについて確認する為にいくつかconsole.log()をしてみました。
118
+
119
+ ```JS
120
+
121
+ $(function () {
122
+
123
+
124
+
125
+ /*
126
+
127
+ * Tabs
128
+
129
+ */
130
+
131
+ $('#work').each(function () {
132
+
133
+
134
+
135
+ // タブの各要素を jQuery オブジェクト化
136
+
137
+ var $tabList = $(this).find('.tabs-nav'), // タブのリスト
138
+
139
+ $tabAnchors = $tabList.find('a'), // タブ (リンク)
140
+
141
+ $tabPanels = $(this).find('.tabs-panel'); // パネル
142
+
143
+
144
+
145
+ // タブがクリックされたときの処理
146
+
147
+ // 引数としてイベントオブジェクトを受け取る
148
+
149
+ $tabList.on('click', 'a', function (event) {
150
+
151
+ console.log(event);
152
+
153
+ console.log(1);
154
+
155
+ // リンクのクリックに対するデフォルトの動作をキャンセル
156
+
157
+ event.preventDefault();
158
+
159
+
160
+
161
+ // クリックされたタブ(a要素)を jQuery オブジェクト化
162
+
163
+ var $this = $(this);
164
+
165
+
166
+
167
+ // もしすでに選択されたタブならなにもせず処理を中止
168
+
169
+ if ($this.hasClass('active')) {
170
+
171
+ return;
172
+
173
+ }
174
+
175
+
176
+
177
+ // すべてのタブの選択状態をいったん解除し、
178
+
179
+ // クリックされたタブを選択状態に
180
+
181
+ $tabAnchors.removeClass('active');
182
+
183
+ $this.addClass('active');
184
+
185
+
186
+
187
+ // すべてのパネルをいったん非表示にし、
188
+
189
+ // クリックされたタブに対応するパネルを表示
190
+
191
+ $tabPanels.hide();
192
+
193
+ $($this.attr('href')).show();
194
+
195
+
196
+
197
+ });
198
+
199
+
200
+
201
+ // 最初のタブを選択状態に
202
+
203
+ $tabAnchors.eq(0).trigger('click');
204
+
205
+ console.log(4);
206
+
207
+ });
208
+
209
+
210
+
211
+ });
212
+
213
+
214
+
215
+ ```
216
+
217
+
218
+
219
+ このページを読み込んだ段階でconsole.log(4);が表示されるのは納得出来ますが、ページを読み込んだ段階ではクリックしていないはずなのになぜ、console.log(1);,console.log(event);が表示されるのですか。

1

変更

2019/02/07 08:04

投稿

Chandler_Bing
Chandler_Bing

スコア673

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,12 @@
5
5
  の意味は
6
6
 
7
7
  $tabListの「a要素」が押された時に、それをオブジェクトとしてeventという名前で受け取るということですか。
8
+
9
+
10
+
11
+ とういうことであれば、var $this = $(this);は
12
+
13
+ a要素が入っているということで合っていますか。
8
14
 
9
15
 
10
16