2013-06-26 3 views
0

Я вынимаю фотографии альбомов из API Facebook и затем размещаю их в стиле кладки. Я настроил его так, чтобы я запускал функцию API, а затем, когда я нажимаю кнопку, он запускает функцию каменной кладки, которая отлично работает. Теперь то, что я хочу сделать, это кладки пробег автоматически после того, как все изображения будут загружены, например, так:Не загружайте, пока функция не закончит загрузку

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

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

Беда я бегу в хотя это masonryFunction работает задолго до того, fbAPI закончил делать это вещь, которая мешает ему от работы (сначала все фотографии должны быть загружены). Теперь я не могу просто запустить masonryFunction при загрузке страницы, потому что fbAPI не запускается до тех пор, пока не будет введен какой-либо пользовательский ввод. Что я могу сделать?

ответ

0

Вызвать функцию fbAPI() в функции обратного вызова для функции входа FB.

Например,

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. 
    } 
}