2012-12-23 65 views
0

我加載我的Flickr設置到我的網站,像這樣:使用JSON變量作爲公共變量?

$(window).load(function() { 
var apiKey = 'xxx'; 
var userId = '[email protected]'; 

$.getJSON('http://api.flickr.com/services/rest/?format=json&method=flickr.photosets.getPhotos&photoset_id=' + photoset_id + '&per_page=1000' + '&page=1' + '&api_key=' + apiKey + '&user_id=' + userId + '&jsoncallback=?', function(data) { 
    $.each(data.photoset.photo, function(i, flickrPhoto){ 
     var basePhotoURL = 'http://farm' + flickrPhoto.farm + '.static.flickr.com/' 
     + flickrPhoto.server + '/' + flickrPhoto.id + '_' + flickrPhoto.secret + "_z.jpg"; 

     var fullPhotoURL = 'http://farm' + flickrPhoto.farm + '.static.flickr.com/' 
     + flickrPhoto.server + '/' + flickrPhoto.id + '_' + flickrPhoto.secret + "_l.jpg";   

     /*var FlickrLink = "http://www.flickr.com/photos/" + data.photoset.owner + "/" + flickrPhoto.id + "/";*/ 
     $("<img/>").attr("src", basePhotoURL).appendTo("#photographs").wrap(("<div class='item'></div>")) 

    }); 

    **$("<a href='#' class='zoom'/>").appendTo(".item");** 
    **$("<a href='#' class='flickr'/>").appendTo(".item");** 

    $("#photographs").gridalicious({ 
     gutter: 2, 
     animate: true, 
     effect: 'fadeInOnAppear', 
     width: 320, 
     complete: onComplete() 
    }); 

    function onComplete(){ 
     $("#loader").delay(20000).fadeOut("slow"); 
     $(".item").hover(function(){ 
      $(".zoom, .flickr", this).stop(true,true).fadeIn(300); 
     }, function() { 
      $(".zoom, .flickr", this).stop(true,true).fadeOut(300); 
     }); 
    } 
}); 
}); 

的.zoom & .flickr的div追加到.item DIV(包含圖片)。我需要var fullPhotoURL和var FlickrLink因爲我想在代碼中使用突出顯示(帶星號)錨。當我這樣做時,出現無法找到變量fullPhotoURL和變量FlickrLink的錯誤。

我該如何解決這個問題?

回答

0

你必須定義$。每塊外面的變量:

$.getJSON('http://api.flickr.com/services/rest/?format=json&method=flickr.photosets.getPhotos&photoset_id=' + photoset_id + '&per_page=1000' + '&page=1' + '&api_key=' + apiKey + '&user_id=' + userId + '&jsoncallback=?', function(data) { 

    var fullPhotoURL, FlickrLink; 

    $.each(data.photoset.photo, function(i, flickrPhoto){ 
     var basePhotoURL = 'http://farm' + flickrPhoto.farm + '.static.flickr.com/' 
     + flickrPhoto.server + '/' + flickrPhoto.id + '_' + flickrPhoto.secret + "_z.jpg"; 

     fullPhotoURL = 'http://farm' + flickrPhoto.farm + '.static.flickr.com/' 
     + flickrPhoto.server + '/' + flickrPhoto.id + '_' + flickrPhoto.secret + "_l.jpg";   

     /*FlickrLink = "http://www.flickr.com/photos/" + data.photoset.owner + "/" + flickrPhoto.id + "/";*/ 
    $("<img/>").attr("src", basePhotoURL).appendTo("#photographs").wrap(("<div class='item'></div>")) 

    }); 

    $("<a href='#' class='zoom'/>").appendTo(".item"); 
0

要定義在Javascript中一個全局變量,你需要跳過var申報期限。

var「是指」由默認值分配給您的變量lacal變量

開始:

fullPhotoURL = null; 
FlickrLink = null; //Avoid first upcase char to define variable 

然後這些變量將在所有的功能

+0

感謝關於第一個大寫字符的提示。這工作,但現在我得到'未定義'的網址..見下文。 –

+0

檢查@asgoth評論 – sdespont