jQuery中利用animate改变left边距后,获取值为上一个

问题描述:
在修改left的值后,图片的确发生了位置的改变,符合预期效果,但是在获取图片的left值时**,获取到的是上一次的left值**,希望大佬指点一二QAQ.
部分代码如下:

            //封装切换图片函数
            function change_animate(index){
                //根据传入的index下标值,显示对应的图片,这里传 0 
                $(".web_body_showPicture>ul").eq(0).animate({
                    //切换效果已经成功出现
                    "left":index*-1*992+"px"
                },1000, showDot());
            //问题如下:输出获取到的left并不是0,设为0之间的left值
                console.log($(".web_body_showPicture").children("ul").eq(0).position().left);
            }

2个回答

将showDot函数添上function如下,已经解决

function(){
                    showDot();
                }

1.函数并不会等待animate执行完毕才继续往下执行语句,也就是说,animate就像是新开一个线程一样
2.回调函数不加function包装,会在函数没有执行完毕的时候,直接调用
注:以上都是我实验后,个人总结的,或许实际上和我的推测并不一样QAQ

其实就是你这left在改的时候,下面已经执行输出了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问