繁体   English   中英

在函数完成加载之前不要加载

[英]Don't load until function finishes loading

我从Facebook API中提取相册照片,然后以砖石风格对其进行整理。 我已经设置好它,以便我将运行API函数,然后单击一个按钮,它将运行砌体函数,该函数工作正常。 现在我要做的是在下载所有图像后让砌体自动运行,如下所示:

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

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

我遇到的麻烦是masonryFunction在fbAPI完成该操作之前运行良好,这阻止了它的工作(所有照片必须先加载)。 现在,我无法简单地在页面加载时运行masonryFunction,因为fbAPI直到用户输入后才启动。 我能做什么?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM