2011-09-24 157 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