我不認爲這是一個錯誤都遺憾地說,它只是圍捕 - 我認爲這在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()
以滿足您的需求 - 畢竟開放源代碼:)
這不能正常工作,因爲它只會在第一次點擊時按'1',而後按'1.1'連續點擊,從而破壞效果。 – Nightfirecat
@ D.Alexander感謝您的回覆。但仍然沒有解決問題。我想1.00作爲差異。 –