2011-09-12 8 views
0

次のスクリプトを動作させる方法を理解するのが本当に難しいです。このページにはFacebookのフォトアルバムが読み込まれますが、ライトボックスを作成するには$("a.fancied").fancybox();に電話する必要があります。フォトアルバムのAJAXで動作するライトボックスを取得する

以下のコードは、この行をgetJSON()のコールバックとして実行しようとしていますが、私はこのような点で初心者です。なぜ動作していないのか分かりません。

すべてがすべてロードされた後にコンソールに入力すると、$("a.fancied").fancybox();に問題はありません。アクションで

サイト:http://bagsoffunkansascity.org/white-party-2011.html

<div id="FBalbum"></div> 
    <script> 
    $(document).ready(function() { 

     var AlbumID = "206175519447064"; 

     var graph = "https://graph.facebook.com/" + AlbumID + "/photos?callback=?";   
     $.getJSON(graph, function(data) { 
      var albumItem = []; 
      $.each(data, function(key, val) { 
       $.each(val, function(key2, val2) { 
        if (val2.source != undefined){ 
         albumItem.push(
          '<li id="' + key2 + '"><a class="fancied" href="' + val2.source + '"><img src="' + val2.picture + '" /></a></li>' 
         ); 
        } 
       }); 
      });   
      $('<ul />', { 
       'class': 'album', 
       html: albumItem.join('') 
      }).appendTo('#FBalbum'); 
     }, function(){ 
      $("a.fancied").fancybox(); 
     });  
    }); 
    </script> 

ありがとう!

答えて

1

このコードを試すには、私の作品:

<script> 
$(document).ready(function() { 

    var AlbumID = "206175519447064"; 

    var graph = "https://graph.facebook.com/" + AlbumID + "/photos?callback=?";   
    $.getJSON(graph, function(data) { 
     var albumItem = []; 
     for(var key in data){ 
      for(var key2 in data[key]){ 
       val2=data[key][key2]; 
       if(typeof(val2.source)!="undefined"){ 
        albumItem.push(
         '<li id="' + key2 + '"><a class="fancied" href="' + val2.source + '"><img src="' + val2.picture + '" /></a></li>' 
        ); 
       } 
      } 
     } 
     $('<ul />', { 
      'class': 'album', 
      html: albumItem.join('') 
     }).appendTo('#FBalbum'); 
     $("a.fancied").fancybox(); 
    });  
}); 
</script> 

は、基本的には$ .eachは非同期であり、あなたがalbumItemを作成しているときは空です。

他に何か必要がある場合は教えてください。

乾杯

G.

+0

グレート、ありがとう!それがどれくらい長く私を救い出すかわからない。私は混乱しています、なぜalbumItem.join( '')は以前に動作しましたか?それぞれの非同期性(これは一言である)で、正しく動作しないようにしてはいけませんか? –

関連する問題