我的自定义函数的回调不起作用。请问有人能帮我吗?
<html>
<body>
<script src='jquery-1.8.2.js'></script>
<script>
$(document).ready(function(e){
function cb(){
alert('animation finish');
}
$('button').bind({
'click':function(e,cb){
e.preventDefault();
$('div').animate({'height':200,'width':200},1000);
cb();
}
})
})
</script>
<style>
div{
height:5px;width:5px;background-color:yellow;
}
</style>
<button>click me</button>
<div></div>
</body>
</html>
编辑:
我做不到.animate(...,1000,function(){...})
我用了这条线
$('div').animate({'height':200,'width':200},1000);
只是为了表示执行中的其他一些函数——它相对复杂,条件更多,并且根据各种参数调用不同的动画。
基本上,在所有这些动画结束之后,我想要一个结束函数cb()
来执行;这就是我遇到问题的地方。
也许这样的事情是合适的:
<script>
$(document).ready(function(e){
var status=0;
var tmp1=2;tmp2=7;
function cb(){
alert('animation finish');
console.log(status);
}
function do_func1(){
status = tmp1+tmp2;
$('#ele1').animate({'height':200,'width':200},1000);
}
function do_func2(){
status = tmp1*tmp2;
$('#ele2').animate({'height':300,'width':300},2000);
}
function do_func3(){
status = tmp1+tmp1;
$('#ele3').animate({'height':400,'width':400},500);
}
function func1(){
if('a'=='b'){
do_func1();
}else if('a'=='c'){
do_func2();
}else{
do_func3();
}
}
$('button').on({
'click':function(e,cb){
e.preventDefault();
func1();
cb();
}
})
})
</script>