как посчитать количество кнопок для изменения?

#javascript #jquery

#javascript #jquery

Вопрос:

пожалуйста, помогите исправить скрипт или скажите, в каком направлении думать. Есть калькулятор для заказа товаров:

 $(function(){
    var price = {
        '130': {
            'list': {
                'a3': {
                    '4 4': {
                        '500': 3255,
                        '1000': 3720,
                        '2000': 4935,
                        '3000': 5935,
                        '4000': 6935,
                    },
                    '4 0': {
                        '500': 3031,
                        '1000': 3456,
                        '2000': 4410,
                    },
                },
                'a4': {

                }
            },
            'flaer': {

            }
        },
        '160': {

        }
    };

    var dict = {
        '130': '130 г/мamp;sup2;',
        '160': '160 г/мamp;sup2;',
        'list': 'Листовки',
        'flaer': 'Флаеры',
    }

    var str = '',
        multi;

    // Selecting something by clicking a button
    $(document).on('click', '#calc button', function(event){
        //event.preventDefault();
        $(this).parent().data('selected', $(this).data('id'));
        $(this).addClass('selected').siblings().removeClass('selected');
        $('#calc_result').empty();

        var priceitem = price,
            param;
        for (var i=0; i < 5; i  )
        {
            param = $('#calc div:eq(' i ')').data('selected');
            if (param)
                priceitem = priceitem[param];   
            else
                break;
        }

        if (i == 5)
        {
            $('#calc_result').text(priceitem);

            q = $('button.selected');
            q.each(function(){
                str = str   $(this).text()   ', ';
            })      
            str = str.substring(0, str.length - 2);

            $('#calc_summary').append(str);
        }

        // shadow hide
        $(this).closest('.cell').next().find('.cell_shadow').css('display', 'none');
    });

    // Pre-filling
    var priceitem = price;
    for (var lvl=0; lvl < 5; lvl  )
    {
        var iter = 0;
        for (var i in priceitem)
        {
            if (!iter)
                priceitem = priceitem[i]        
            iter  ;
            $('#calc .lvl' lvl).append('<button data-id="' i '">' ((i in dict) ? dict[i] : i) '</button>');
        }
    }

    // multiplication request
    $('#odin_plus').on('click', function(){
        if($('#calc_multi').html() == ''){
            multi = 1;
            addMulti(multi);
        }
        else{
            multi = multi   1;
            addMulti(multi);
        };

        $('#odin_minus').css('visibility', 'visible');
    });

    $('#odin_minus').on('click', function(){
        if($('#calc_multi').html().substring(2) != '1'){
            multi = multi - 1;
            addMulti(multi);
        }
        else{
            $('#odin_minus').css('visibility', 'hidden');
            $('#calc_multi').html('');
        };
    });             

    function addMulti(multi){
        $('#calc_multi').html(' x'   multi);
    };

    $('#listovki_submit').on('click', function(){
        alert('Ваша заявка отправлена '   'n'   str   ' '   $('#calc_multi').text());
    });
});
  

проблема в том, что при выборе следующего блока. ячейка_13 содержит 5 кнопок.

выбор следующего блока. ячейка_13 также содержит 5 кнопок (но должна содержать три кнопки!)

Мне нужно для случая блока «4 0». ячейка_13 содержала 3 кнопки

Комментарии:

1. Есть ли jsfiddle, где мы можем увидеть HTML-код, связанный с javascript?

2. Jsfiddle в начале вопроса, spoted !!… вам, ребята, нужно больше читать 🙂