あなたが望むものを理解するのはちょっと難しいですが、を外側のfor
ループからのみ必要と思っています。
新しい変数スコープを作成して保持する必要があります。
for (var i = 0; i < count; i++) {
FB.api({
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid=' + temparray[i]
}, (function(j) { // <---- create a function...
// v---------...that returns a function...
return function (response) {
$("#divfather" + j).html(response[0].name);
};
})(i) // <------...and invoke it immediately, passing "i"
);
}
ここでは同じことだが、私は少し立派だと思うという名前の関数を使用して。
function get_callback(j) {
return function (response) {
$("#divfather" + j).html(response[0].name);
};
}
for (var i = 0; i < count; i++) {
FB.api({
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid=' + temparray[i]
}, get_callback(i));
}
それとも個人的には、私はそれを分割するのではなく、関数内のすべてのロジックを置くと思います。
function set_up_FB_api(j) {
FB.api({
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid=' + temparray[ j ]
}, function (response) {
$("#divfather" + j).html(response[0].name);
});
}
for (var i = 0; i < count; i++) {
set_up_FB_api(i);
}
あなたは星です。きれいに働いてくれました –
@sken boy:どうぞよろしくお願いします。 – user113716
heh良い仕事@パトリック:)私は彼が求めていたものを完全に逃した。 – Darin