JQuery购物车案例
全选模块
选中全选按钮,商品将会添加.check-cart-item类
$('.checkall').change(function(){
$('.j-checkbox, .checkall').prop("checked",$(this).prop("checked"));
if($(this).prop("checked")){
$('.cart-item').addClass("check-cart-item");
}
else{
$('.cart-item').removeClass("check-cart-item");
}
getCount();
})
从商品列表的内部来实现全选功能
如果商品选中的数量==商品总数,则证明全部商品都选中,此时就要将全选按钮选中
$('.j-checkbox').change(function()
if($('.j-checkbox:checked').length === $('.j-checkbox').length){
$('.checkall').prop("checked",true);
}else{
$('.checkall').prop("checked",false);
}
if($(this).prop("checked")){
$(this).parent().parent(".cart-item").addClass("check-cart-item");
}else{
$(this).parent().parent(".cart-item").removeClass("check-cart-item");
}
getCount();
})
2.自增按钮
商品数量模块的增加,点击+,需要变量实现自增功能,然后将变量的值赋给文本框
$('.increment').click(function()
var n=$(this).siblings(".itxt").val();
n++;
$(this).siblings(".itxt").val(n)
var p = $(this).parent().parent().siblings(".p-price").html();
p = p.substr(1)
var pSum = (p * n).toFixed(2);
$(this).parent().parent().siblings(".p-sum").html("¥"+pSum);
getCount()
})
自减模块
商品数量模块的减少,点击-,需要变量实现自减功能,然后将变量的值赋给文本框
$('.decrement').click(function(){
var n=$(this).siblings(".itxt").val();
if(n>1){
n--;
$(this).siblings(".itxt").val(n);
var p = $(this).parent().parent().siblings(".p-price").html();
p = p.substr(1)
var pSum = (p * n).toFixed(2)
$(this).parents(".p-num").siblings(".p-sum").html("¥"+pSum);
getCount()
}else{
alert('是否删除该商品');
return false;
}
})
直接键盘输入文本框,改变小计的值
$('.itxt').change(function(){
var n=$(this).val();
var p = $(this).parents().siblings(".p-price").html();
p = p.substr(1)
var pSum = (p * n).toFixed(2);
$(this).parents(".p-num").siblings(".p-sum").html("¥"+pSum);
getCount()
})
删除商品
当点击商品后的删除按钮时,删除该商品
$('.p-action a').click(function()
alert("确定删除该商品吗?");
$(this).parents('.cart-item').remove();
getCount();
})
删除所有商品
当点击删除所有商品的按钮时,删除所有商品
$('.clear-all').click(function(){
alert("确定删除所有商品吗?");
$('.cart-item').remove();
getCount();
})
删除选中的商品
当点击删除选中商品时
$('.remove-batch').click(function(){
alert("确定删除选中的所有商品吗?");
$('.j-checkbox:checked').parents(".cart-item").remove();
getCount() ;
})
商品数量、商品总价
function getCount()
var count=0;
$('.itxt').each(function(index,element)
if($(element).parents('.p-num').siblings('.p-checkbox').children('.j-checkbox').prop('checked')){
count+=parseInt($(element).val());
}
})
$('.amount-sum em').text(count);
var sum=0;
$('.p-sum').each(function(index,element){
if($(element).siblings('.p-checkbox').children('.j-checkbox').prop('checked')){
sum += parseFloat(($(element).text().substr(1)));
}
})
$('.price-sum em').text("¥"+sum.toFixed(2));
}
|