我已经简化了这一点,是的......我知道fadeIn是一个奇怪的例子......但这是重点之一。
如何在自定义函数上创建回调函数 - 或者没有通过它的函数...例如 - 如果没有参数怎么办? Here is a fiddle to illustrate my confusion -
我将这些怪物回调分解成小组,我想把它们连在一起 - 但我肯定错过了一些东西......
// An example function
function sheriff(speed) {
$('.thing').fadeIn(speed);
}
$('button').on('click', function() {
sheriff(1000, function() {
$('body').css('background-color', 'red');
});
});
这是我的实际代码,具有适当的回调。我用我的第一个例子进行了简化,并没有显示出足够复杂的用途 - 所以 - 对于其他人我将把它留在这里。
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);
});
});
答案 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