カスタム関数のコールバックが機能していません。誰か助けてください。
<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>