2010-08-22 2 views
0

저는 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으로 멈추게 만들 수 있었다. 누군가가 나에게 이것을 사용하는 방법에 대한 예제를 줄 수 있다면 나는 그것을 고맙게 생각할 것이다. 미리 감사드립니다. 당신은 자바 스크립트 배열이 아닌 jQuery를 객체를 가지고

답변

3

, 당신은 배열 클래스 대신에 jQuery를에 slice 방법에 slice 방법을 사용하십시오

$.each(data1.photoset.photo.slice(50, 100), function(k,item){ 
1
.slice(a,b).each() 
+0

$ .slice (50,100) .each (...)를 추가하려고했지만 실행에 실패했습니다. 사진이 나타나지 않고 방화 광이 오류로 표시됩니다. – rhololkeolke

2

나는 당신이 시도하고있는 무슨 생각 do는 Flickr API 문서 (flickr.photosets.getPhotos)에서 다룹니다. per_page 옵션을 확인하십시오.

+0

귀하의 권리는 api가이 것을 다루고 있습니다. (나는 먼저 확인해야합니다.) 그러나 다른 대답은 각각 다른 점에서 시작하는 방법을 설명하기 때문에 대답으로 받아 들일 것입니다. – rhololkeolke

+0

+1 데이터 소스에 더 가깝습니다. 스크립트에서 배열을 제한하는 것이 가장 간단한 해결책이지만, 가져 오는 것을 제한하는 것을 보면서 추가 작업을 할 가치가 있습니다. – Guffa