2011-04-04 142 views
0

好的,我有这种形式。在表单中是一个输入字段,当你键入一个?在输入值的某处,我有一段运行onkeyup的代码,它滑出一个元素(.searchEnter)以及更改一些css。jquery动画问题

<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踢入并滑动所需的时间越长.search输出。为什么会发生这种情况,我该如何解决?

回答

0

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

+0

非常感谢它的工作。 – hubrid 2011-04-04 04:38:23

0

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

因此,不是这样的:

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

这样做:

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

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

+0

哇,这个问题和答案论坛的岩石。谢谢你所有的建议帮助! – hubrid 2011-04-04 04:37:44