2013-09-28 34 views
0

我在我的網站中添加了十進制微調器。使用鼠標上下改變數值時的UI微調器錯誤

我的價值是56.20。 當我改變使用鼠標輪時,我期待57.20,但現在它顯示57:00。

的功能如下所示:

<script> 
    $(function() { 
    $("#spinner").spinner({ 
     step: 1.00, 
     numberFormat: "n" 
    }); 

    $("#culture").change(function() { 
     var current = $("#spinner").spinner("value"); 
     Globalize.culture($(this).val()); 
     $("#spinner").spinner("value", current); 
    }); 
    }); 
    </script> 

我已經包括了demo too

回答

3

我不認爲這是一個錯誤都遺憾地說,它只是圍捕 - 我認爲這在spinner.js內的jQuery代碼的一部分行動全面上漲:

_spin()

value = this._adjustValue(value + step * this._increment(this.counter)); 

呼籲_adjustValue()

_adjustValue: function(value) { 
    var base, aboveMin, 
     options = this.options; 

    // make sure we're at a valid step 
    // - find out where we are relative to the base (min or 0) 
    base = options.min !== null ? options.min : 0; 
    aboveMin = value - base; 

    // - round to the nearest step 
    aboveMin = Math.round(aboveMin/options.step) * options.step; 

    // - rounding is based on 0, so adjust back to our base 
    value = base + aboveMin; 

    // fix precision from bad JS floating point math 
    value = parseFloat(value.toFixed(this._precision())); 

    // clamp the value 
    if (options.max !== null && value > options.max) { 
     return options.max; 
    } 
    if (options.min !== null && value < options.min) { 
     return options.min; 
    } 

    return value; 
}, 

來源jQuery UI GitHub

但你可以嘗試一下,在旋轉&然後重新調整完成旋轉後的值,根據您使用以下兩個回調事件有什麼之前,前捕捉值:

var beforeSpin = 1.00; 

$("#spinner").spinner({ 
     step: 1.10, 
     numberFormat: "n", 
     start: function(event, ui) { 
      beforeSpin = ui.value; 
     }, 
     //or stop: function(){} 
     spin: function(event, ui) { 
      //Do some re-value 
      //funciton based on old value 
     } 
}); 

,或重新編程_adjustValue: function()以滿足您的需求 - 畢竟開放源代碼:)

0

一切看起來在這裏很好,只是設置你的步驟1.10。

例子:

$("#spinner").spinner({ 
    step: 1.10, 
    numberFormat: "n" 
}); 

窺視DEMO

我要補充一點,你可以相應地調整增量值。

+0

這不能正常工作,因爲它只會在第一次點擊時按'1',而後按'1.1'連續點擊,從而破壞效果。 – Nightfirecat

+0

@ D.Alexander感謝您的回覆。但仍然沒有解決問題。我想1.00作爲差異。 –