【发布时间】:2015-01-29 18:01:13
【问题描述】:
我想先声明一下,我是一个 JS 的初学者,现在才使用它几天。
这是我正在使用的 http://jsfiddle.net/joyroyxw/
我想做的是获取一个人的名字并显示他们名字中每个字母的图像。 到目前为止,我能够将名称拆分为单个字母,并将“字母”连接为搜索标签,以便 flickr 返回每个字母的图像。
我的问题是这些图片没有按顺序添加,这可能是因为一个查询的加载速度比另一个查询快吗?如何添加缓冲区或延迟以便按顺序显示每个字母?如果我的 for 循环按顺序将标签发送到函数,为什么会这样做?
来自 jsfiddle 的 Javascript:
function getQueryStringVar(name){
var qs = window.location.search.slice(1);
var props = qs.split("&");
for (var i=0 ; i < props.length;i++){
var pair = props[i].split("=");
if(pair[0] === name) {
return decodeURIComponent(pair[1]);
}
}
}
function getLetterImage(tag){
var flickerAPI = "https://www.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
$.getJSON( flickerAPI, {
tags: tag,
tagmode: "all",
format: "json"
})
.done(function (flickrdata) {
//console.log(flickrdata);
var i = Math.floor(Math.random() * flickrdata.items.length);
var item = flickrdata.items[i];
var url = item.media.m;
console.log(url);
$("body").append("<img src="+ url + "></img>");
});
}
$(document).ready(function() {
var name = getQueryStringVar("name") || "Derek";
var str = "letter,";
var searchtags = new Array()
for (var i = 0; i < name.length; i++) {
//console.log(str.concat(searchtags.charAt(i)));
searchtags[i] = str.concat(name.charAt(i));
}
for (var j = 0; j < name.length; j++){
//getLetterImage(searchtags[j]);
getLetterImage(searchtags[j]);
}
});
【问题讨论】:
标签: javascript jquery flickr