@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);
	});
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
@DimkaI
Системный адинистратор, разработчик ПО
Делайте расчёт либо в каждом событии изменения, либо создайте функцию/метод и обращайтесь к нем из всех мест, где производится изменение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы