#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 !!… вам, ребята, нужно больше читать 🙂