我刚刚开始使用jQuery。我正在使用它来创建一个照片库,从Flickr中提取照片和他们的信息。该脚本如下所示jQuery .each()从0以外的索引开始
<html>
<head>
<title>Flickr Test</title>
<script src="http://rhol.squarespace.com/storage/js/jquery.js" type="text/javascript"></script>
<script src="http://rhol.squarespace.com/storage/js/fancybox/jquery.fancybox-1.3.1.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="http://rhol.squarespace.com/storage/js/fancybox/jquery.fancybox-1.3.1.css" media="screen" />
<script>
$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getInfo&api_key=db05e5f5e5c2151218cc06545aaae27e&photoset_id=72157624591740770&format=json&jsoncallback=?",
function(data2){
$("#setName").text(data2.photoset.title._content);
$("#setDesc").text(data2.photoset.description._content);
});
$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=db05e5f5e5c2151218cc06545aaae27e&photoset_id=72157624591740770&format=json&jsoncallback=?",
function(data1){
$.each(data1.photoset.photo, function(k,item){
var baseurl = 'http://farm'+item.farm+'.static.flickr.com/'+item.server+'/'+item.id+'_'+item.secret;
$("<tr><td id=\"image"+k+"\"><a> </a></td><td id=\"desc"+k+"\"></td></tr><tr />").appendTo("#images");
$("#image"+k+" > a").attr("href",baseurl + "_b.jpg").attr("rel","mylightbox[photoset]").attr("class","gallery");
$("<img/>").attr("src",baseurl+'_m.jpg').appendTo("#image"+k+" > a");
$("a.gallery").fancybox({'titlePosition':'inside'});
$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&api_key=db05e5f5e5c2151218cc06545aaae27e&photo_id="+item.id+"&format=json&jsoncallback=?",
function(data2){
$("#desc"+k).text(data2.photo.description._content);
$("#image"+k+" > a").attr("title",data2.photo.description._content);
});
});
});
</script>
</head>
<body>
<a name="top"></a><br />
<h1 id="setName"></h1>
<h3 id="setDesc"></h3>
<br />
<table id="images">
</table>
<a href="#top">top</a>
</body>
我的问题是,这个脚本看来,如果有太多的照片,锁定浏览器。我想要做的是让它加载50张照片,然后再加上另一张50页。但是,我不确定如何使每个从json对象中的第50项开始,而不是第一个。当k == 50时,我可以通过返回false来让它停在50。如果有人能给我一个例子,说明如何做到这一点,我会欣赏它。提前致谢。
我试图添加$ .slice(50,100).each(...),但它然后无法运行。照片不显示,Firebug将其显示为错误。 – rhololkeolke 2010-08-22 04:33:30