jquery动画问题

jquery动画问题,jquery,jquery-animate,Jquery,Jquery Animate,好的,我有这张表格。表单中有一个输入字段,当您键入?在输入值的某个地方,我有一段代码,它运行一个onkeyup,将元素(.searchEnter)滑出,并更改一些css <script> $(".askInput").keyup(function() { if ($(this).val().indexOf("?") != -1) { $('.searchEnt

好的,我有这张表格。表单中有一个输入字段,当您键入?在输入值的某个地方,我有一段代码,它运行一个onkeyup,将元素(.searchEnter)滑出,并更改一些css

<script>

                $(".askInput").keyup(function() {

                    if ($(this).val().indexOf("?") != -1) {

                        $('.searchEnter').animate({
                        marginLeft: "310px"
                        }, 200 );
                        $('.form1').get(0).setAttribute('action', 'post.php');


                    } else {

                        $('.searchEnter').animate({
                            marginLeft: "250px"
                            }, 200 );
                        $('.form1').get(0).setAttribute('action', 'search.php');


                    }



                });

                </script>

$(“.askInput”).keyup(函数(){
if($(this.val().indexOf(“?”)!=-1){
$('.searchEnter')。设置动画({
边缘左图:“310px”
}, 200 );
$('.form1').get(0.setAttribute('action','post.php');
}否则{
$('.searchEnter')。设置动画({
边缘左侧:“250px”
}, 200 );
$('.form1').get(0.setAttribute('action','search.php');
}
});

当我在输入中键入问号时,.searchEnter会立即滑出。但是,问号前面的字符越多,(例如,您的名字是什么?(前面17个字符?),则.animate启动和滑动.searchEnter所需的时间就越长。为什么会发生这种情况,我如何修复它?

它正在将所有动画排队。先打电话再打

因此,与此相反:

$(".searchEnter").animate(...
这样做:

$(".searchEnter").stop().animate(...

另外,我注意到您正在使用
get(0).setAttribute(…
)。为什么不直接使用?

试试$('.searchEnter').stop()。设置动画…

哇,这个问答论坛真是棒极了。非常感谢您的建议!