2012-11-13 73 views
0

我有一個類似的設計目標爲this StackOverflow question有關將標籤添加到JQuery滑塊,顯示當用戶拖動滑塊時滑塊的當前值。我遇到的問題是,當滑塊即將移動到新位置時,觸發slide事件,並向對象提供新值。那麼好,但唯一位置的滑塊,我可以找到一種方法來抓住是舊的,而不是新的位置。如果滑塊上有足夠的步數,這不是很明顯,但如果我減少步數,則可以看到標籤出現在滑動手柄曾經是的位置旁邊。JQuery滑塊:延遲添加標籤旁邊的標籤

我已經從其他的問題,更新的jsfiddle來說明這個問題:http://jsfiddle.net/mcuf6/2/

因此,TL;博士:我怎樣才能避免滯後繪製滑塊標籤當用戶拖動手柄,通過獲取在滑動事件期間滑塊手柄的最終位置?

回答

2

編輯: 這個小黑客應該做的正是你需要的

$(document).ready(function() { 
    $("#slider").slider({ 
     value:0, 
     min: 0, 
     max: 5, 
     step: 1, 
     range: 'min', 
     slide: function(event, ui) { 
      var that = $(this); 
      setTimeout(function() { 
      var offsetLeft = that.find(".ui-slider-handle").offset().left; 
      $("#sliderValue") 
       .val(ui.value) 
       .css({ 
        "position": "absolute", 
        "left": offsetLeft 
       }); 
     },1); 
     } 
    }); 
});​ 

http://jsfiddle.net/mcuf6/6/

+0

是的,我知道後改完成後我可以更新滑塊,但設計目標,我想要在用戶做出決定在哪裏釋放拖動動作之前顯示值*。 –

+0

我編輯了我的原始答案以適合您的需求。當有疑問 - 使用超時;) – roacher

+0

這是......非常狡猾!謝謝 –