和我之前的其他人一樣,我正在使用Javascript的範圍掙扎。 (那並試圖閱讀這些咒語)。我已經在這個問題上檢查了一些以前的線程,但我似乎無法讓他們正確地應用到我的發佈中。 在下面的例子中,我想操作tagsArr
數組中的值,一旦數組完全填充。我聲明瞭tagsArr變量超出了它所填充的函數的範圍,以便全局訪問它。但是變量似乎並沒有有我希望的範圍 - 在tagsArr.length
在我打電話輸出點爲0它上線16Javascript/jQuery變量沒有給出預期值
$(function(){
var apiKey = [myapikey];
var tags = '';
var tagsArr = new Array();
$.getJSON('http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' + apiKey + '&[email protected]&extras=date_taken,tags&format=json&jsoncallback=?', function(data){
$.each(data.photos.photo, function(i, item) {
var photoID = item.id;
$.getJSON('http://api.flickr.com/services/rest/?&method=flickr.photos.getInfo&api_key=' + apiKey + '&photo_id=' + photoID + '&format=json&jsoncallback=?', function(data){
if (data.photo.tags.tag != '') {
$.each(data.photo.tags.tag, function(j, item) {
tagsArr.push(item.raw);
});
}
});
tags = tagsArr.join('<br />');
console.debug(tagsArr.length);
});
$('#total-dragged').append(data.photos.total);
$('#types-dragged').append(tags);
});
});
謝謝!這是一個很好的解決方案。增加'totalFetched'變量(和相關的'if'子句)需要進一步向下移動一個子句,目前它正在計數標記而不是取回的照片! – fearoffours 2010-01-07 22:13:01