私はこの奇妙な問題を抱えています。これが私のフィドルです:http://jsfiddle.net/m6qJC/7/
ご覧のとおり、最初のスライダーの値を取得し、次に 2 番目のスライダーの値を取得して、計算を実行し、結果を出力する必要があります。しかし、スライダー(最初のもの、2番目のものはそれをしていません)を速く動かすと、奇妙なことが計算されます。見てください。解決策はありますか?
$(document).ready(function () {
$("#amount_slider").slider({
orientation: "horizontal",
range: false,
min: 500,
max: 4999,
value: 500,
step: 10,
animate: 'slow',
slide: function (event, ui) {
$("#amountDisp").text(ui.value);
calculate();
}
});
$("#time_slider").slider({
orientation: "horizontal",
range: false,
min: 7,
max: 28,
step: 7,
value: 7,
animate: true,
slide: function (event, ui) {
$("#timeDisp").text(ui.value);
calculate();
}
});
function calculate() {
var amount = parseInt($("#amount_slider").slider("value"));
var time = parseInt($("#time_slider").slider("value"));
var coeficient = 0;
switch(time){
case 7: coeficient = 1.09;break;
case 14: coeficient = 1.15;break;
case 21: coeficient = 1.19;break;
case 28: coeficient = 1.25;break;
}
var rate = amount * coeficient;
$("#result").text(rate.toFixed(2));
}
});
およびhtml:
<p>Money: <span id="amountDisp">500</span><div id="amount_slider"></div></p><p>Time: <span id="timeDisp">7</span><div id="time_slider"></div></p><p>Calculated <span id="result">545</span></p>