我正在尝试制作一些div来制作动画,然后在回调中调用另一个函数。没什么难的。这是代码:
function transfertMenu(){
var chosenOption = this.firstChild.firstChild.id;
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu());
$('#leftMenucontent > ul > li').remove();
chooseMenu(chosenOption);
}
并尝试了
function transfertMenu(){
var chosenOption = this.firstChild.firstChild.id;
$('#leftMenucontent').animate({
left:'0px'
}, 500, function() {
constructMenu();
});
$('#leftMenucontent > ul > li').remove();
chooseMenu(chosenOption);
}
问题在于,当我在回调(constructMenu)中放置一个alert()时,它完美运行,动画结束,然后弹出警报。当我输入一个函数时,它会在动画完成之前从头开始。这是一个错误,还是我做错了什么?
答案 0 :(得分:8)
您应该从回调函数中删除()
,否则会立即调用它:
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu());
------problem --------^
应该是:
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu);
因此,请将您的回调函数指定为constructMenu
,而不是constructMenu()