スライダーの値に基づいてサービスの価格を計算するために使用している次のコードがあります。
PriceVal
リアルタイムで更新されないことを除けば、うまく機能します。ユーザーがマウス クリックをスライダーから離したときにのみ更新されます。
スライダーがスライドするときにリアルタイムで更新する方法を知っている人はいますか?
このページはhttp://www.voxlogic.net/pricing/で見ることができます。
$(function() {
//document.getElementById("f1").reset();
$(":range").rangeinput({ progress: true, max: 100, value:1 });
$(":range").change(function(){
var sliderVal = this.value;
calculatePrice(sliderVal);
});
$(":range").keyup(function(){
var sliderVal = this.value;
if (sliderVal==""){
$("#priceVal").html('');
}
else
{
//check if value is from 1..25 range and correct otherwise
if (isNaN(sliderVal)){sliderVal=1;}
if (sliderVal<1){sliderVal=1;}
if (sliderVal>25){sliderVal=25;}
this.value = sliderVal;
calculatePrice(sliderVal);
}
});
$(":range").keydown(function(){
var sliderVal = this.value;
calculatePrice(sliderVal);
});
});
function calculatePrice(sliderVal){
if (isNaN(sliderVal)){sliderVal=1;}
if (sliderVal<1){sliderVal=1;}
if (sliderVal>25){sliderVal=25;}
var priceVal;
if (sliderVal<=9){
priceVal = sliderVal*6;
}
else if ((sliderVal>9)&&(sliderVal<=19)){
priceVal = 9 * 6 + (sliderVal-9) * 4.5;
}
else if (sliderVal>19){
priceVal = 9 * 6 + 10 * 4.5 + (sliderVal-19) * 3.6;
}
$("#priceVal").html('£'+priceVal.toFixed(2));
}
});