适用于自定义javascript函数/ jQuery的回调语法

时间:2014-03-10 03:23:53

标签: javascript jquery

我已经简化了这一点,是的......我知道fadeIn是一个奇怪的例子......但这是重点之一。

如何在自定义函数上创建回调函数 - 或者没有通过它的函数...例如 - 如果没有参数怎么办? Here is a fiddle to illustrate my confusion -

我将这些怪物回调分解成小组,我想把它们连在一起 - 但我肯定错过了一些东西......

的jQuery

// An example function

function sheriff(speed) {
    $('.thing').fadeIn(speed);
}

$('button').on('click', function() {

    sheriff(1000, function() {
        $('body').css('background-color', 'red');
    });

});

修改

这是我的实际代码,具有适当的回调。我用我的第一个例子进行了简化,并没有显示出足够复杂的用途 - 所以 - 对于其他人我将把它留在这里。

的jQuery

function pullInSocialButtons(speed, callback) {

    var facebook    = $('.toy-box-top .social-links li:nth-of-type(1)');
    var twitter     = $('.toy-box-top .social-links li:nth-of-type(2)');
    var google      = $('.toy-box-top .social-links li:nth-of-type(3)');
    var email       = $('.toy-box-top .social-links li:nth-of-type(4)');

    facebook.fadeIn(speed, function() {
        twitter.fadeIn(speed, function() {
            google.fadeIn(speed, function() {
                email.fadeIn(speed, callback); // CALLBACK
            });
        });
    });

} // end

然后在这个其他功能--->

$('.some-thing').fadeIn(500, function() {

    pullInSocialButtons(50, function() {
      setTimeout(function () {

        $('.porthole').fadeIn(500);

      }, 1000);
    });

});

1 个答案:

答案 0 :(得分:6)

sheriff中,您可以收到第二个参数作为第二个参数,例如

// An example function

function sheriff(speed, callback) {
    $('.thing').fadeIn(speed, callback);
}

$('button').on('click', function() {

    sheriff(1000, function() {
        $('body').css('background-color', 'red');
    });

});

演示:Fiddle