2013-07-06 69 views
0

這裏是JSFiddle鏈接:(http://jsfiddle.net/jforman07/qaU7K/222/)。JQuery UI滑塊不能與「value:x」一起使用,僅與「values:[x]」

問題:滑動條不動

這裏的JavaScript的:

$(document).ready(function() { 
$("#slider").slider({ 
    range: "min", 
    value: 50, 
    min: 1, 
    max: 100, 

    slide: function (event, ui) { 

     $("input.sliderValue[data-index=0]").val("$" + ui.values[0] + "k"); 

     var delay = function() { 
      var handleIndex = $(ui.handle).data('index.uiSliderHandle'); 

      $("#slideText").html(ui.value).position({ 
       my: 'center top', 
       at: 'center bottom', 
       of: ui.handle, 
       offset: "0, -74" 
      }); 
     }; 
     setTimeout(delay, 0); 
    } 
}); 


}); 

如果我改變

value: 50, 

values: [50], 

然後滑桿的作品,但隨後的滑動條上的綠色陰影消失 - 如被看見在此的jsfiddle - http://jsfiddle.net/jforman07/qaU7K/223/

+1

謝謝!只是編輯原始問題以包含javascript代碼 – James

+0

最好使用您可用的調試工具來找出問題。在這種情況下,如果你在瀏覽器的JavaScript控制檯中查看,你會看到'Uncaught TypeError:無法讀取行中未定義的屬性'0'[@hearaman在他/她的答案中指出]( http://stackoverflow.com/a/17500833/157247)。使用內置在瀏覽器中的調試器來停止該行,可以讓你檢查'ui'對象,在這一點上,你可能會發現它沒有'values'屬性,但確實有'value'屬性。 –

回答

1

這似乎工作:

$(document).ready(function() { 
$("#slider").slider(options = { 
    range: "min", 
    value: 50, 
    min: 1, 
    max: 100, 

    slide: function (event, ui) { 


     var delay = function() { 
      var handleIndex = $(ui.handle).data('index.uiSliderHandle'); 

      $("#slideText").html(ui.value).position({ 
       my: 'center top', 
       at: 'center bottom', 
       of: ui.handle, 
       offset: "0, -74" 
      }); 
      $(".sliderValue").val("$" + ui.value + "k"); 
     }; 

     setTimeout(delay, 0); 


    }, 
    create : function (event, ui){ 
    $(".sliderValue").val("$" + options.value+ "k"); 

    } 
}); 


}); 

答:使用create選項作爲回調在滑塊完成時運行。用戶界面是空的,所以我們必須命名我們的選項,你可以在參數(options = {...})中看到,這將允許我們通過調用options.value 來獲取預設值B:在延遲功能中,您應該更新滑塊標籤。

+0

謝謝!很棒,非常有幫助 – James

+0

James,很高興我能幫上忙。 –

2

只是,在你的代碼變更線波紋管

 $("input.sliderValue[data-index=0]").val("$" + ui.values[0] + "k"); 

 $("input.sliderValue[data-index=0]").val("$" + ui.value + "k"); 

Updated Fiddle

+0

好的。 ... –

+0

也可以,謝謝! – James