jQuery .each()从0以外的索引开始

时间:2010-08-22 04:17:13

标签: javascript jquery

我刚刚开始使用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处停止。如果有人能给我一个如何使用每个人的例子,我会很感激。提前谢谢。

3 个答案:

答案 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()