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 中不带括号的函数名是传入一个可供调用的函数,带括号会执行该函数并返回其返回值。