質問編集履歴

2

タイトル修正

2019/12/06 15:38

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【jQuery】ローカル関数の中でクロージャ用いて実装したいです。
1
+ 【jQuery】ローカル関数に入れると何故エラーになる知りたいです。
test CHANGED
@@ -4,8 +4,6 @@
4
4
 
5
5
  また、var current=0;とvar num=0;をslider関数に入れて動作させるにはカプセル化を用いて実装すれば良いということでしょうか?
6
6
 
7
- 自分で考えてslider関数内でクロージャを用いて実装しましたが、クリックイベントでslider関数を呼び出すにはどのような処理を書けば良いかを教えていただけると嬉しいです。
8
-
9
7
 
10
8
 
11
9
  ```html
@@ -146,13 +144,13 @@
146
144
 
147
145
  $('.next').on('click',function(){
148
146
 
149
- slider();
147
+ slider(1);
150
148
 
151
149
  });
152
150
 
153
151
  $('.prev').on('click',function(){
154
152
 
155
- slider();
153
+ slider(2);
156
154
 
157
155
  });
158
156
 
@@ -174,6 +172,8 @@
174
172
 
175
173
  return current++;
176
174
 
175
+
176
+
177
177
  if(current<numLength){
178
178
 
179
179
  num-=numWidth;

1

タイトル・内容を編集

2019/12/06 15:38

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 【jQuery】初期値をローカル関数の中に入れて実装したいです。
1
+ 【jQuery】ローカル関数の中でクロージャを用いて実装したいです。
test CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  また、var current=0;とvar num=0;をslider関数に入れて動作させるにはカプセル化を用いて実装すれば良いということでしょうか?
6
6
 
7
+ 自分で考えてslider関数内でクロージャを用いて実装しましたが、クリックイベントでslider関数を呼び出すにはどのような処理を書けば良いかを教えていただけると嬉しいです。
8
+
7
9
 
8
10
 
9
11
  ```html
@@ -144,29 +146,33 @@
144
146
 
145
147
  $('.next').on('click',function(){
146
148
 
147
- slider(1);
149
+ slider();
148
150
 
149
151
  });
150
152
 
151
153
  $('.prev').on('click',function(){
152
154
 
153
- slider(2);
155
+ slider();
154
156
 
155
157
  });
156
158
 
159
+
160
+
157
- function slider(flg){
161
+ function slider(){
158
-
162
+
159
-    var current=0;
163
+ var current=0;
160
164
 
161
165
  var num=0;
162
166
 
167
+   
168
+
163
- if(flg==1){
169
+ return function slideNext(){
164
170
 
165
171
  var numWidth=$('.slider-list img').eq(current).width();
166
172
 
167
173
  var numLength=$('.slider-list img').length;
168
174
 
169
- current++;
175
+ return current++;
170
176
 
171
177
  if(current<numLength){
172
178
 
@@ -182,13 +188,17 @@
182
188
 
183
189
  $('.slider-list').animate({left:num});
184
190
 
191
+ }
192
+
193
+
194
+
185
- }else if(flg==2){
195
+ return function slidePrev(){
186
196
 
187
197
  var numWidth=$('.slider-list img').eq(current).width();
188
198
 
189
199
  var numLength=$('.slider-list img').length;
190
200
 
191
- current--;
201
+ return current--;
192
202
 
193
203
  if(current>=0){
194
204
 
@@ -210,6 +220,8 @@
210
220
 
211
221
  }
212
222
 
223
+
224
+
213
225
  }
214
226
 
215
227
  });