basket.js 3.53 KB
$(document).ready(function(){

    var result_block = $('.basket_result');


    function changeAjaxPrice(id, num){
        $.post( "/orders/buy-items",  {id: id, num:num}, function( data ) {
        });
    }

    function countPrise(block){
        var totalBlock = block.parents('.order_list');
        var total_price = 0;
        totalBlock.find('.price_val').each(function(){
            total_price += +$(this).html();
        });
        $('.all_price_span').html(total_price);
    }


    $('.item').on('click', '.basket_add_but', function(e){
        var id = $(this).data('id');
        $.post( "/orders/buy-items",  {id: id, num:1}, function( data ) {
            $('.basket_result').each(function(){
                $(this).html(data)
            });
        });

    });

    $('.main_cont_wrap').on('click', '.cart_btn', function(e){
        var id = $(this).data('id');
        $.post( "/orders/buy-items",  {id: id, num:1}, function( data ) {
            $('.basket_result').each(function(){
                $(this).html(data)
            });
        });

    });

    result_block.on('click', '.delete_item_btn', function(){
        var block  = $(this).parents('.order_list_li');


        var id = block.data('id');

        $.post( "/orders/delete",  {id: id}, function( data ) {
        });
        var forCount = block.parents('ul');
        $('.order_list_li[data-id='+id+']').each(function(){
            var block = $(this);
            block.remove();
        });
        countPrise(forCount);




    });

    result_block.on('click',  '.button_minus', function(){
        var block  = $(this).parents('.order_list_li');
        var price_block = block.find('.price_val');
        var input = block.find('input');
        var number = input.val();
        var id = block.data('id');

        if(number > 1){
            number--;
            input.val(number);
            var price = price_block.data('price');
            var new_price = number * +price;
            price_block.html(new_price);
            changeAjaxPrice(id, number);
            synchronizationPriceData(id, number);
        }

        countPrise(block);
    });


    result_block.on('click',  '.button_plus', function(){
        var block  = $(this).parents('.order_list_li');
        var price_block = block.find('.price_val');
        var input = block.find('input');
        var number = input.val();
        var id = block.data('id');

        number++;
        input.val(number);
        var price = price_block.data('price');
        var new_price = number * +price;
        price_block.html(new_price);

        changeAjaxPrice(id, number);
        synchronizationPriceData(id, number);
        countPrise(block);
    });

    result_block.on('change', '.buy_one_item', function(){
        var block  = $(this).parents('.order_list_li');
        var num = $(this).val();
        var price_block = block.find('.price_val');
        var price = price_block.data('price');
        var id = block.data('id');

        var new_price = num * +price;
        price_block.html(new_price);
        changeAjaxPrice(id, num);
        synchronizationPriceData(id, num);
        countPrise(block);
    });

    function synchronizationPriceData(id, number){
        $('.order_list_li[data-id='+id+']').each(function(){
            var block = $(this);
            block.find('input').val(number);
            var price_block = block.find('.price_val');
            var price = price_block.data('price');
            var new_price = number * +price;
            price_block.html(new_price);
        });
    }



});