Всем привет. Имеются поверхностный знания jquery, но никогда не делал ничего "масштабного", сейчас возникла необходимость написать корзину, ринулся в бой)
Сделал, и вроде она кое как работает, но мне хотелось бы услышать Ваши комментарии (и нужно будет еще добавлять кнопки, а уже сложно работать с такой кучей переменных). Уверен, что большая часть кода просто бред) В общем если сможете отпишите как было бы лучше сделать.
Посмотреть можно здесь
http://jsfiddle.net/zDGS4/
Вроде все прокомментировал.
И сюда еще на всякий случай скину js.
// +,- количество уникальной позиции
$(".plus").click(function() {
var nc = parseInt($(this).parent("div").children('.count').text())+1;
$(this).parent("div").children('.count').text(nc);
});
$(".minus").click(function() {
var mc = parseInt($(this).parent("div").children('.count').text())-1;
$(this).parent("div").children('.count').text(mc);
});
$(".add").click(function() {
var th = $(this);
var parCl = $("div[class^=item-]");
// Получаем ид из класса
var classNum = parseInt(th.parent(parCl).attr('class').replace(/\D+/g,""));
// Помещяем все данные в соответствующие переменные
var title = th.parent(parCl).children('.title').text();
var price = parseInt(th.parent(parCl).children('.price').text());
var count = parseInt(th.parent(parCl).children('.count').text());
// Считаем первоначальную сумму
var elemSumm = price*count;
// Получаем сумму из инпута для последующего увеличения
var mainSumm = parseInt(($("#summ").val()+0)/10);
// Проверяем помещена ли позиция в корзину
if($("div").is(".cart-item-"+classNum)){
// Если да получаем колиество из уже существующего класса
var newCount = parseInt($(".cart-item-"+classNum+" .cart-count").text());
var countOut = count + newCount;
$(".cart-item-"+classNum+" .cart-count").text(countOut)
// Увеличиваем сумму
var mainSummOut = mainSumm + elemSumm;
$("#summ").val(parseInt(mainSummOut));
}
else{
// Если нет добавляем
$("#info").append("<div class='cart-item-"+classNum+"'><span class=\"cart-title\">"+title+"</span><span class=\"cart-price\">"+price+"</span><span class=\"cart-count\">"+count+"</span><div class=\"spoiler\"></div></div>");
// Увеличиваем значение суммы
var mainSummOut = mainSumm + elemSumm;
$("#summ").val(parseInt(mainSummOut));
}
// Считаем и выводим количество уникальных позиций
var blud = $("div[class^=cart-item-]").length;
$("#blud").val(blud);
});