2012-02-29 96 views
1

試圖創建將滑回到開始如果沒有一路之隔把它拖一個滑塊......這裏是行不通:jQuery UI的滑塊重置動畫

$("#slider").slider({ 
    animate: true, 
    change: function(event, ui) { 
     if ($(this).slider('value') < 100) { 
      $(this).slider('value', 0); 
     } 
    } 
}); 

滑塊向後移動,但瞬間沒有動畫。

+0

等待,當你說動畫,不僅僅是設定值。 – 2012-02-29 01:25:14

回答

1

在jQuery UI的1.8.18,你將不得不異步調用它:

$("#slider").slider({ 
    animate: true, 
    stop: function(event, ui) { 
    if($(this).slider('value') < 100) { 
     setTimeout(function(){ 
     $("#slider").slider('value', 0); 
     },1); 
    } 
    } 
}); 
+0

謝謝,但仍然沒有動畫。 – chAd 2012-02-29 00:38:08

+0

試試這個修改後的版本,用最新版本的jquery UI – Tim 2012-02-29 00:55:08

+0

完成了測試!完美的作品!謝謝:) – chAd 2012-02-29 02:36:26

1

在這裏你去:

$("#slider").slider({ 
    animate: true, 
    stop: function(event, ui) { 
     if(ui.value < 100) { 
      setTimeout(function() { 
       $("#slider").slider("value", 0); 
      }, 100); 
     } 
    } 
}); 

這小提琴也表示一個例子:http://jsfiddle.net/chrisabrams/2xkvy/1/

+0

這個也可以,謝謝! – chAd 2012-02-29 02:39:45

+0

ui.value和$(this).slider之間的區別是什麼('value') – chAd 2012-02-29 02:42:49

+0

在這種情況下,它們都是相同的。 jQuery UI建議儘可能使用ui對象以避免範圍問題。此外,答案之前並不如此相似。 – 2012-02-29 02:58:31