2013-06-26 30 views
0

我從Facebook API拉專輯照片,然後安排他們在磚石風格。我已經設置好了,這樣我就可以運行API函數,然後當我點擊一個按鈕時,它會運行砌體功能,這很好。現在我想做的是有磚石運行的所有圖像下載後自動,就像這樣:不要加載,直到函數完成加載

function fbAPI() { 
    //downloading photos and placing them in a div 
    masonryFunction(); 
} 

function masonryFunction(){ 
    //run the masonry plugin 
} 

我碰上雖然是masonryFunction運行良好fbAPI完成之前做這件事的麻煩,這將阻止它從工作(所有的照片必須先加載)。現在我不能簡單地在加載頁面時運行masonryFunction,因爲fbAPI直到用戶輸入後纔會啓動。我能做什麼?

回答

0

在FB登錄函數的回調函數中調用fbAPI()函數。

例如,

FB.login(function(response) { 
    if (response.authResponse) { 
     facebookLoggedIn(); 
    } else { 
     alert('User cancelled login or did not fully authorize.'); 
    } 
}); 

function facebookLoggedIn() { 
    fbAPI(); 
} 

或者,訂閱FB auth.statusChange事件:

FB.Event.subscribe('auth.statusChange', function(response) { 
    facebookStatusChange(response); 
}); 

function facebookStatusChange(response) { 
    if (response.status === 'connected') { 
     uid = response.authResponse.userID; 
     accessToken = response.authResponse.accessToken; 
     facebookLoggedIn(); 
    } else if (response.status === 'not_authorized') { 
     // the user is logged in to Facebook, 
     // but has not authenticated your app 
    } else { 
     // the user isn't logged in to Facebook. 
    } 
} 
相關問題