jQuery Callback 方法
Callback 函数在当前动画 100% 完成之后执行。
jQuery 动画的问题
许多 jQuery 函数涉及动画。这些函数也许会将 speed 或 duration 作为可选参数。
例子:$("p").hide("slow")
speed 或 duration 参数可以设置许多不同的值,比如 "slow", "fast", "normal" 或毫秒。
实例
以下实例在隐藏效果完全实现后回调函数:
使用 callback 实例
$("button").click(function(){
$("p").hide("slow",function(){
alert("段落现在被隐藏了");
});
});
尝试一下
以下实例没有回调函数,警告框会在隐藏效果完成前弹出:
Approid
lv4***@126.com
被立即停止的动画不会触发回调,被立即完成的动画会触发回调。
$(document).ready(function(){ $("button").click(function(){ $("p").hide(3000,function(){ alert("段落现在被隐藏了"); }); }); $("#happy").click(function(){ $("p").stop(false,true); }); });尝试一下 »
Approid
lv4***@126.com
巴贝
BB_***455585@163.com
如果动画有队列的话,想实现其快速完成所有动画并停止,就要相应的与队列数对应条数的停止语句(鄙人陋见,仅供参考)。
$(document).ready(function(){ $("#start").click(function(){ $("div").animate({left:'300px'},5000); $("div").animate({fontSize:'3em'},5000); }); $("#stop1").click(function(){ $("div").stop(); }); $("#stop2").click(function(){ $("div").stop(true); }); $("#stop3").click(function(){ $("div").stop(false,true); $("div").stop(false,true); }); });巴贝
BB_***455585@163.com
MCCF
353***4841@qq.com
jQuery Callback 只接受 Function,否则不会执行回调。
如以下三种方式都传入一个 Function,在动画结束后执行:
$("p").hide("slow",function(){ alert("Now it's invisible"); }); var func=function(){ alert("Now it's invisible"); } $("p").hide("slow",func); function func(){ alert("Now it's invisible"); } $("p").hide("slow",func);但要注意,使用函数名可获取一个 Function 函数对象,但是 func() 这样的形式会执行函数并返回值。比如使用以下方式:
$("p").hide("slow",func());可以看到,解释器为了确定第二个参数值,会在调用 hide 函数时就执行 func 函数,因此其看来是在动画开始前执行。
因此需要记住:JavaScript 中不带括号的函数名是传入一个可供调用的函数,带括号会执行该函数并返回其返回值。
MCCF
353***4841@qq.com