我刚刚开始使用jQuery。我正在使用它制作一个照片库,从Flickr中提取照片和信息。该脚本如下所示
<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和另外50页。但是,我不知道如何使每个开始使用json对象中的第50项而不是第一项。当k == 50时,我能够让它在50处停止。如果有人能给我一个如何使用每个人的例子,我会很感激。提前谢谢。
答案 0 :(得分:3)
由于你有一个Javascript数组而不是jQuery对象,所以在jQuery中使用数组类中的slice
方法而不是slice
方法:
$.each(data1.photoset.photo.slice(50, 100), function(k,item){
答案 1 :(得分:2)
我认为您要做的事情由flickr.photosets.getPhotos上的Flickr API文档涵盖。检查per_page
选项。
答案 2 :(得分:1)
.slice(a,b).each()