2012-08-17 47 views
0

我已經使用圖表API來獲取相冊,我將所有相冊都放到了我的網站中,但當刷新頁面時相冊的位置發生了變化。爲什麼會發生?將facebook相冊嵌入網站

我在這裏附上我的腳本。

<script> 
$(document).ready(function() { 
    var albumIdsUrl = "https://graph.facebook.com/<myname>/albums?callback=?"; 

    $.getJSON(albumIdsUrl, function(data) { 
     var len = data.data.length; 
     for(var i=0;i<len;i++){ 
      var aid = data.data[i].id; 
      getAlbumCoverPhoto(data.data[i].cover_photo, data.data[i].id, data.data[i].name, data.data[i].count); 
     } 
    }); 

}); 

function getAlbumCoverPhoto(coverPhoto, albumId, albumName, count) { 
     var coverPhotoUrl = "https://graph.facebook.com/" + coverPhoto + "?callback=?"; 
      $.getJSON(coverPhotoUrl, function(coverPhotoData) { 
       if(typeof(coverPhotoData.picture)!="undefined"){ 
         htmlData = '<li><figure><a class="imageLink" href="fb_album_photos.html?id='+ albumId + '"><img src="' + coverPhotoData.picture + '" /></a></figure><figcaption>'+albumName+'</br>'+count+' Photos</figcaption></li>'; 
         $('#FBalbum').append(htmlData); 
       } 
      });    
    } 
</script> 

回答

0

被返回的數據並不總是以相同的順序排列,所以如果需要一致的結果,它需要排序。

這似乎是工作好(但它可以被清理了一下):

$.getJSON(albumIdsUrl, function(data) { 
    var len = data.data.length; 
    data.data.sort(function(a, b) 
    { 
     if (a.id == b.id) return 0; 
     if (a.id < b.id) 
      return -1; 
     else 
      return 1; 
    }); 
    for(var i=0;i<len;i++){ 
     var aid = data.data[i].id; 
     getAlbumCoverPhoto(data.data[i].cover_photo, data.data[i].id, data.data[i].name, data.data[i].count); 
    } 
}); 
+0

感謝您的快速反應。我試過上面的代碼,並得到同樣的問題 – user1606656 2012-08-17 13:49:37

+0

我在我的答案編輯排序功能,結果似乎比我有更多的一致。 – Oxin 2012-08-17 13:55:08