2011-09-24 164 views

回答

2

您可以将回调函数更改为false

$("img").rotate({angle:0, callback:function(){ false; }}); 
+0

这也可以做到。我比这更喜欢这个答案。 – maxedison

+0

@ maxedison是的,我也一样。非常感谢 – jQuerybeast

0

您可以使用JQuery的停止方法(http://api.jquery.com/stop/

例:

$('.img').stop(true, true) 
+0

- 1:这不起作用:http://jsfiddle.net/gpPcU/15/它不工作的原因是因为.stop()停止目前正在运行和排队的动画。但是如果你看看他的代码,你会发现回调函数本质上会产生一个不断排队新动画的循环。所以.stop()会停止当前的动画,但之后立即排队。关键是要打破回调循环,就像我在回答中一样。 – maxedison

0

这将做到这一点:http://jsfiddle.net/gpPcU/3/

我不确定你用你提到的If语句试过了什么,因为这不在你的小提琴中,但你可能在正确的路线上CK。下面是我的主要变化:

rotate()回调中test()

function(){ 
     if(!$('img').hasClass('stop')){ 
      rotation() 
     }else{ 
      $('img').rotate({angle:0}); 
     } 
    } 

按钮单击事件:

$(".btn").click(function(){ 
    $("img").addClass('stop'); 
}); 
+0

非常感谢先生 – jQuerybeast