cart.page.js 2.66 KB
var $ = require('yoho-jquery');
var Cart = require('./cart/cart');
var Stepper = require('./cart/stepper');

$(function() {
    var $this;

    // 关闭info-bar
    $('.info-bar .close').on('click', function() {
        $('.info-bar').hide();
    });

    $('#cart_content').delegate('.toggle-chk, .toggle-chk-item', 'click', function() {
        // 全选和单选
        Cart.toggleCheck.call(Cart, this);
    }).delegate('.remove-item', 'click', function() {
        // 删除商品
        // 重构
        Cart.removePro([$.parseJSON($(this).parents('ul').children().first().attr('data-product_info'))]);
    }).delegate('#remove_selected', 'click', function(e) {
        // 删除多个商品
        // 重构
        // 选择的商品
        var selectedProducts = [],
            product;

        e.preventDefault();
        $('#cart_content').find('li.chk').each(function() {
            product = $(this);
            if (product.find('label.chk-group').length) {
                selectedProducts.push($.parseJSON(product.attr('data-product_info')));
            }
        });
        Cart.removePro(selectedProducts);
    }).delegate('.send-to-favorite', 'click', function() {
        // 移入收藏夹
        // 重构
        Cart.sendToFavorite([$.parseJSON($(this).parents('ul').children().first().attr('data-product_info'))]);
    }).delegate('#send_favorite', 'click', function(e) {
        // 将多个商品移入收藏夹
        // 重构
        // 选择的商品
        var selectedProducts = [],
            product;

        e.preventDefault();
        $('#cart_content').find('li.chk').each(function() {
            product = $(this);
            if (product.find('label.chk-group').length) {
                selectedProducts.push($.parseJSON(product.attr('data-product_info')));
            }
        });
        Cart.sendToFavorite(selectedProducts);
    }).delegate('.editable', 'click', function() {
        $this = $(this);

        // 编辑商品颜色和属性
        Cart.editColorOrSize(
            $this.attr('data-productId'),
            $this.attr('data-productSkn'),
            $this.find('.default-color').text(),
            $this.find('.default-size').text());

        $('body').on('click', function() {
            $('.edit-color-size').remove();
        });
    }).delegate('#checkout_btn', 'click', function(e) {
        e.preventDefault();
        if ($('.chk-group').length) {
            Cart.checkStorage(function() {
                if (!$(this).hasClass('disable')) {
                    window.location.href = '/shopping/order';
                }
            });
        }
        return false;
    });

    // 变动商品数量
    Stepper.init();
});