为什么这两个jqueryUI回调的行为有所不同?

时间:2017-10-26 17:26:20

标签: twitter-bootstrap jquery-ui callback

我在jqueryUI中使用回调来确保下一个动画将在前一个动画结束时开始。我试图了解这两个非常相似的回调导致不同结果的原因

这是两种不同的语法:

//First callback
$(".main-container").switchClass("col", "col-9", addElements());

//Second Callback
$(".main-container").switchClass("col", "col-9", function(){
    addElements();
}); 

我使用bootstrap,因此col到col-9类切换。在第一个回调中,附加到main-container的元素会在动画进行时附加并显示,而在第二个回调中,它们会在col扩展为col-9后显示。

为什么会有差异?

1 个答案:

答案 0 :(得分:1)

你自己解释了不同之处。第一个是定义一个操作完成后要调用的函数 - 也就是说,col被更改为col9。在将一个col更改为col9并添加元素后,将调用它。

第二个是使用匿名函数定义的,因此只有在为主容器中的所有单个col调用switchClass并添加元素之后才会调用它。

它们看起来可能相同 - 也就是说,调用addElements()的回调,但实际上你注意到自己,它们并不是。在第一个中,您在每次转换后调用函数addElements,而在第二个函数中,addElements在回调中被调用,并且仅在所有转换发生后调用。