Вход

Просмотр полной версии : slider jquery ui


face2005
29.01.2022, 14:46
Добрый день!
есть калькулятор с использованием slider jquery ui.
Проблема в том что при быстром перемещении ползунка в условиях искажаются данные, т.е такое впечатление что он не успевает вовремя поймать свое значение.

function result() {

let resSumm = currentSumm * priceOneMassage;
let realSumm = currentSumm * priceOneMassage;

if ( currentSumm < 10000 ) {
resSumm = resSumm;
$(".econom").removeClass("activeEconom");

} else if ( currentSumm >= 10000 && currentSumm < 100000 ) {
resSumm = realSumm - ( resSumm / 100 * skidka1);
let econom1 = realSumm - resSumm;
$("#econom1").text(Math.round(econom1));
$(".econom").removeClass("activeEconom");
$(".ec1").addClass("activeEconom");

} else if ( currentSumm >= 100000 && currentSumm < 1000000 ) {
resSumm = realSumm - ( resSumm / 100 * skidka2);
let econom2 = realSumm - resSumm;
$("#econom2").text(Math.round(econom2));
$(".econom").removeClass("activeEconom");
$(".ec2").addClass("activeEconom");

} else if ( currentSumm >= 1000000 ) {
resSumm = realSumm - ( resSumm / 100 * skidka3);
$(".econom").removeClass("activeEconom");
$(".ec3").addClass("activeEconom");
}
$("#priceAllMassage").text(Math.round(resSumm));
};


диапазон от 100 до миллионна с шагом в 100, если я шаг сделаю 5000 то все нормально.. подскажите как побороть?

рони
29.01.2022, 15:03
face2005,
let timer;
let resultNew = _ =>{
clearTimeout(timer);
timer = setTimeout(result, 300);
}

face2005
29.01.2022, 15:30
face2005,
let timer;
let resultNew = _ =>{
clearTimeout(timer);
timer = setTimeout(result, 300);
}

Спасибо! но все равно проскакивает...

рони
29.01.2022, 15:31
face2005,
300 можно увеличить