jquery动画问题

时间:2011-04-04 04:23:20

标签: jquery jquery-animate

好的,我有这个表格。在表单中是一个输入字段,当你键入一个?在输入值的某处,我有一段代码运行一个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>

当我在输入中输入问号时,.searchEnter立即滑出。但是,问号前面的字符越多(即你的名字是什么?(之前的17个字符?)),.animate启动和滑动所需的时间越长.searchEnter out。为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:0)

它正在排队所有的动画。在致电stop之前致电animate

所以不要这样:

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

这样做:

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

另外,我注意到你正在使用get(0).setAttribute(...。为什么不使用attr

答案 1 :(得分:0)

尝试$('。searchEnter')。stop()。animate ...