Javascript 在.animate()的回调中出错?
我试图制作一些div来制作动画,然后在回调中调用另一个函数。没什么难的。代码如下:Javascript 在.animate()的回调中出错?,javascript,jquery,jquery-animate,Javascript,Jquery,Jquery Animate,我试图制作一些div来制作动画,然后在回调中调用另一个函数。没什么难的。代码如下: function transfertMenu(){ var chosenOption = this.firstChild.firstChild.id; $('#leftMenucontent').animate({ left:'0px' }, 500, constructMenu()); $('#leftMenucontent > ul
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);
}
问题是,当我在回调菜单中放置警报时,它工作正常,动画完成,然后警报弹出。当我输入一个函数时,它会在动画完成之前从开头开始。这是一个bug,还是我做错了什么?您应该从回调函数中删除,否则它会立即被调用:
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu());
------problem --------^
应该是:
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu);
因此,将回调函数指定为constructMenu,而不是constructMenu。您应该从回调函数中删除它,否则它会立即被调用:
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu());
------problem --------^
应该是:
$('#leftMenucontent').animate({
left:'0px'
}, 500, constructMenu);
因此,将回调函数指定为constructMenu,而不是constructMenu你说得对!谢谢。但是如果我想传递参数呢?我能加上这个吗?你说得对!谢谢。但是如果我想传递参数呢?我可以加上这个吗?