@vikholodov

Как правильно написать калькулятор на jquery?

Пишу свой первый калькулятор на jquery, почти все хорошо, кроме чекбоксов, у меня весь расчет идет в $("#slider").on("change", function (), соответственно, я чекаю чекбокс(извините за каламбур), но изменения отображаются конечно же только после того как я сдвину ползунок слайдера. Понимаю что надо расчет оттуда вытаскивать, но как сделать чтобы и слайдер на лету считался и чекбоксы
5a1ae47e7c443037563645.png
$.sum = function() {    
        return Array.prototype.reduce.call(arguments, function (sum, current) {
            return sum + parseInt(current);
        }, 0);
    };
$("#slider").ionRangeSlider({
    grid: true,
    from: 0,
    min: 0,
    max: 50000,
    step: 1000,
    grid_num: 10,
});	
var tz = 0;	
var meta = 0;
var copyright = 1;
var days = 0;
var total_days = 0;

	$('#check2').change(function() {
		if ($('#check2').prop('checked')) {
		tz = 2;
		} else {
		tz = 0;	
		}			
	});
	$('#check3').change(function() {
		if ($('#check3').prop('checked')) {
		meta = 2;
		} else {
		meta = 0;	
		}	
					
	});
	$('#check4').change(function() {
		if ($('#check4').prop('checked')) {
		copyright = 3;
		} else {
		copyright = 1;	
		}				
	});		
	$("#slider").on("change", function () {
	    var $this = $(this),
	        value = $this.prop("value");
   	  	if ((value <= 10000) && (value > 0)) {
   	  		var cost = 5000 + 5*value;  
   	  		if (value == 1000) {
   	  			days = 5;
	   	  		} else if (value == 2000) {
	   	  			days = 5 + 1;
	   	  		} else if (value == 3000) {
	   	  			days = 6 + 1;
	   	  		} else if (value == 4000) {
	   	  			days = 7 + 1;
	   	  		} else if (value == 5000) {
	   	  			days = 8 + 1;
	   	  		} else if (value == 6000) {
	   	  			days = 9 + 1;
	   	  		} else if (value == 7000) {
	   	  			days = 10 + 1;
	   	  		} else if (value == 8000) {
	   	  			days = 11 + 1;
	   	  		} else if (value == 9000) {
	   	  			days = 12 + 1;
	   	  		} else if (value == 10000) {
	   	  			days = 13 + 1;
	   	  		}		
	   	  	} 

	   	  	else if (value == 0) {
	   	  		var cost = 0;  	
	   	  		days = 0;  	
	   	  	} else {
	   	  		var cost = 'По договоренности';	
	   	  		days = 'По договоренности';	
	   	  	}

	   	  	total_days = $.sum(days + tz + meta)*copyright;

		    $("#cost span").text(cost);
		    $("#days span").text(total_days);
	});
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
@DimkaI
Системный адинистратор, разработчик ПО
Делайте расчёт либо в каждом событии изменения, либо создайте функцию/метод и обращайтесь к нем из всех мест, где производится изменение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $