回答編集履歴

3

追記を受けて

2019/05/27 07:01

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -99,3 +99,93 @@
99
99
  });
100
100
 
101
101
  ```
102
+
103
+
104
+
105
+
106
+
107
+ # 追記を受けて
108
+
109
+
110
+
111
+ おそらく「変数のスコープ」「引数」「戻り値」あたりをきちんと学習する必要がありそうです。
112
+
113
+ - [MDNリファレンス:関数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Functions)
114
+
115
+ - [JavaScriptのスコープ総まとめ](https://qiita.com/Kazuuuuuki/items/3c40bbe6e7bb7ff84e3e)
116
+
117
+
118
+
119
+
120
+
121
+ 定義した変数と関数の引数で受け取った情報は違います。
122
+
123
+ ```js
124
+
125
+ var id = 1;
126
+
127
+
128
+
129
+ function test(id){
130
+
131
+ console.log(id);
132
+
133
+ }
134
+
135
+ test(2);
136
+
137
+ //出力結果:2
138
+
139
+ ```
140
+
141
+ 今回は「コールバック引数」でnewIdが返ってくるわけですが、これも同じです。
142
+
143
+ 関数の引数部分に設定する変数名はなんだっていいのです。(私もoid,nidとしていますよね)
144
+
145
+ ```js
146
+
147
+ var id = 1;
148
+
149
+ function test(argid){
150
+
151
+ console.log(id);
152
+
153
+ console.log(argid);
154
+
155
+ }
156
+
157
+ test(2);
158
+
159
+ //出力結果:
160
+
161
+ //1
162
+
163
+ //2
164
+
165
+ ```
166
+
167
+ ここで「1」と出力されるのはidという変数がグローバルスペースにて宣言されたためです。
168
+
169
+ 今回は「newIdが指定値だったら」を実現するので、私が提示したミニマムコードで言うと、下記のような書き方をすると「指定値と実際の値の比較」ができます。
170
+
171
+ ```js
172
+
173
+ var id = 1;
174
+
175
+ function test(argid){
176
+
177
+ if(argid == id) {
178
+
179
+ console.log('Match');
180
+
181
+ }else{
182
+
183
+ console.log('Not Match');
184
+
185
+ }
186
+
187
+ }
188
+
189
+ test(2);
190
+
191
+ ```

2

修正

2019/05/27 07:01

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -45,3 +45,57 @@
45
45
  n番目を指定するのであれば.sliderから[見たときに何番目の要素](https://lab.syncer.jp/Web/JavaScript/Snippet/54/)か・・・で判断すると良いのですが、
46
46
 
47
47
  HTMLを変えられるのであれば、例えば[data属性](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/data-*)とかで「非表示対応させる」フラグを持っておいてそのフラグを拾ったほうが楽そうです。
48
+
49
+
50
+
51
+ 追記:
52
+
53
+ マニュアルのコールバック関数に「何番目か」がとれることが書いてありました。
54
+
55
+ > Arguments
56
+
57
+ $slideElement:
58
+
59
+ jQuery element of the destination element
60
+
61
+ oldIndex:
62
+
63
+ element index of the previous slide (before the transition)
64
+
65
+ newIndex:
66
+
67
+ element index of the destination slide (after the transition)
68
+
69
+
70
+
71
+ 第3引数が「今のスライドの番号」なので、これで判断できます。
72
+
73
+ ```js
74
+
75
+ $(window).on('load', function() {  
76
+
77
+ $('.slider').bxSlider({
78
+
79
+ mode: "horizontal",
80
+
81
+ auto: true,
82
+
83
+ slideWidth: 440,
84
+
85
+ controls: false,
86
+
87
+ infiniteLoop: false,
88
+
89
+ onSlideAfter: function(elem,oid,nid) {
90
+
91
+ console.log(oid);
92
+
93
+ console.log(nid);
94
+
95
+ }
96
+
97
+ });
98
+
99
+ });
100
+
101
+ ```

1

修正

2019/05/27 02:46

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- そのときに現在の要素を$(this)とかで取得し、「特定の要素だったら」の条件を入れてはどうでしょうか。
11
+ そのときに現在の要素を$(this)とかで取得し、「特定のスライド(指定の番号)だったら」の条件を入れてはどうでしょうか。
12
12
 
13
13
 
14
14
 
@@ -39,3 +39,9 @@
39
39
  });
40
40
 
41
41
  ```
42
+
43
+
44
+
45
+ n番目を指定するのであれば.sliderから[見たときに何番目の要素](https://lab.syncer.jp/Web/JavaScript/Snippet/54/)か・・・で判断すると良いのですが、
46
+
47
+ HTMLを変えられるのであれば、例えば[data属性](https://developer.mozilla.org/ja/docs/Web/HTML/Global_attributes/data-*)とかで「非表示対応させる」フラグを持っておいてそのフラグを拾ったほうが楽そうです。