- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
$(function() {
// Калькулятор
function calculate(el,btn){
// Запоминаем данные
//-----------------------------------------------------------------------------------------------------------------
var priceAtribut = 'data-val'; // Атрибут с ценами у блоков
var cartTotal = $('.total_price p'); // Елемент
var elem = {
parentModule : $(el).parents('cart'), // Родительский блок корзины
btn : $(btn), // Текущая кнопка которая была нажата
inpt : $(el).find('.input-counts'), // Инпут с колличеством
priceBase : $(el).find('.string-elem-price-base'), // Базовая цена товара
priceTotal : $(el).find('.string-elem-price-total') // Общая сумма товара
};
//функция: проверка колличества товаров, если к-во = 0, прекращаем работу скрипта
//-----------------------------------------------------------------------------------------------------------------
(function checkCounts () {
var thisCounts = (elem.inpt.val() - 0) + (elem.btn.attr(priceAtribut) - 0);
if(thisCounts != 0) {goCheck(thisCounts)}
}());
//функция: Калькуляции и пересчета!
//-----------------------------------------------------------------------------------------------------------------
function goCheck (counts) {
// Запись колличества в инпут текущего товара
elem.inpt.val(counts);
// Запись общей суммы текущего товара, исходя из количества
elem.priceTotal.html( counts * (elem.priceBase.attr(priceAtribut) - 0) );
// Запись общей суммы текущего товара, исходя из количества в атрибут datavalue
elem.priceTotal.attr( priceAtribut, counts * (elem.priceBase.attr(priceAtribut) - 0) );
checkTotalSumm();
}
// Функция которая делает общий пересчет общей суммы каждого товара, и записывает результат.
//-----------------------------------------------------------------------------------------------------------------
function checkTotalSumm () {
var totalSumm = 0;
$('.'+elem.priceTotal.attr('class')).each(function(){
totalSumm += $(this).attr(priceAtribut) - 0;
});
cartTotal.html(totalSumm);
}
}
// Запуск функции калькулятора
$('.number button').click(function() {
calculate($(this).parents('.item'),this);
});
});
Я только начинаю углубляться в JS, хотелось бы узнать мнение профи, насколько это говнокод!