gpt4 book ai didi

javascript - 与外部函数的回调函数

转载 作者:行者123 更新时间:2023-12-02 17:09:40 27 4
gpt4 key购买 nike

在我的插件中,我在外部处理动画,并且它们仅在某些事件中触发。

例如:

var animateToLeft = function() {
$elements.animate({
marginLeft: '+=' + 300,
marginRight: '-=' + 300
});
},
animateToRight = function() {
$elements.animate({
marginLeft: '-=' + 300,
marginRight: '+=' + 300
});
};

稍后在我的插件中,我必须检查选项是真还是假,然后应用动画:

if( true === options ) {
$button.click( animateToRight );
} else {
$button.click( animateToLeft );
}

到目前为止,代码运行得很好。但是我需要根据if-else语句再添加两个回调函数

var callback1 = function() {
//do something
},
callback2 = function() {
//do something else
}

我无法直接向动画添加回调函数,我需要在 if-else 语句期间添加它们。我尝试了这种方法,但没有成功:

if( true === options ) {
$button.click( animateToRight, function() {
$body.bind( callback1 );
});
} else {
$button.click( animateToLeft, function() {
$body.bind( callback2 );
});
}

如何添加这些回调?有没有更简单的方法?

最佳答案

您可以将回调传递给动画函数,动画完成后将调用该函数。

// Allow animate functions to be passed a callback
var animateToLeft = function (callback)
{
$elements.animate({
marginLeft: '+=' + 300,
marginRight: '-=' + 300
}, callback);
},
animateToRight = function (callback)
{
$elements.animate({
marginLeft: '-=' + 300,
marginRight: '+=' + 300
}, callback);
};

var callback1 = function(){};
var callback2 = function(){};

if( true === options )
{
$button.on('click', function()
{
// when button is clicked call animate with the callback.
animateToRight(callback1)
});
}
else
{
$button.on('click', function()
{
animateToRight(callback2)
});
}

DEMO

关于javascript - 与外部函数的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24937378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com