2011-10-25 42 views
8

我想知道jQuery传输效果是否有任何回调机制,通过这种机制我可以确定传输效果何时开始以及何时结束。我得到了下面的代码,但我发现没有回调函数...jQuery传输效果和回调函数

请帮忙。谢谢。

$("div").click(function() { 
    var i = 1 - $("div").index(this); 
    $(this).effect("transfer", { to: $("div").eq(i) }, 1000); 
}); 

回答

12

假设你正在谈论的jQuery UI的effect方法,那么它需要一个callback函数作为参数。当该效果已完成了回调将运行:

$(this).effect("transfer", { to: $("div").eq(i) }, 1000, function() { 
    //Done! 
}); 

至于效果开始时,调用effect以下行应立即调用(所以之前的效果完成)后运行。

+0

有什么方法可以在效果开始和效果结束之前确定。有一个回调选项,那么如何才能通过一个回调来确定star和end效果......如果用户想在效果开始和效果结束之前做一些事情,那么如何编写代码......请告知谢谢。 –

+0

正如我在回答中所说的那样,当效果结束时,回调就会运行。无法提供在效果之前运行的函数,但您可以在调用“效果”之前调用它。或者就此而言 - 随着效果的发生,执行将会继续。 –

2

"Transfer effect"的文档没有声明,但effect的文档确实指出可以指定回调。显然这是完成回调。

effect(effect, [options], [speed], [callback]) 

至于什么时候开始,你必须假设是“立即”。

+0

有什么方法可以在效果开始和效果结束之前确定。有一个回调选项,那么如何才能通过一个回调来确定star和end效果......如果用户想在效果开始和效果结束之前做一些事情,那么如何编写代码......请告知谢谢。 –