Собственно набросал верхушку, но попал тутже в тотальный ступор с радиобаттнами, не могу найти функцию, чтобы при checked'e "itnm" присваивалось соответствующее валуе выбранного радио...
Да и чувствую можно как-то укоротить это полотенце массивами (с ними у меня полный абзац), т.к. var price будет длинной до 500 с темже шагом (25), а это уже "Война и Мир"...
$(function() {
itnm = 40
var price = {
50: {
1: itnm*50+900*1,
2: itnm*50+900*2,
3: itnm*50+900*3,
4: itnm*50+900*4,
5: itnm*50+900*5,
6: itnm*50+900*6,
},
75: {
1: itnm*75+900*1,
2: itnm*75+900*2,
3: itnm*75+900*3,
4: itnm*75+900*4,
5: itnm*75+900*5,
6: itnm*75+900*6,
},
100: {
2: itnm*100+900*2,
3: itnm*100+900*3,
4: itnm*100+900*4,
5: itnm*100+900*5,
6: itnm*100+900*6,
},
125: {
2: itnm*125+900*2,
3: itnm*125+900*3,
4: itnm*125+900*4,
5: itnm*125+900*5,
6: itnm*125+900*6,
},
150: {
2: itnm*150+900*2,
3: itnm*150+900*3,
4: itnm*150+900*4,
5: itnm*150+900*5,
6: itnm*150+900*6,
},
175: {
2: itnm*175+900*2,
3: itnm*175+900*3,
4: itnm*175+900*4,
5: itnm*175+900*5,
6: itnm*175+900*6,
},
200: {
3: itnm*200+900*3,
4: itnm*200+900*4,
5: itnm*200+900*5,
6: itnm*200+900*6,
},
225: {
3: itnm*225+900*3,
4: itnm*225+900*4,
5: itnm*225+900*5,
6: itnm*225+900*6,
},
};
function comb(a) {
return Object.keys(a)
}
var steps = comb(price);
var num = steps[0];
var steps2 = comb(price[num]);
$("#slider2").slider({
value: 0,
min: 0,
max: steps2.length - 1,
step: 1,
slide: function(event, ui) {
var Y = steps2[ui.value];
$("#amount2").val(Y);
$("#amount3").val(price[num][Y]);
},
change: function(event, ui) {
var Y = steps2[ui.value];
$("#amount2").val(Y);
$("#amount3").val(price[num][Y]);
}
});
$("#slider").slider({
value: 0,
min: 0,
max: steps.length - 1,
step: 1,
slide: function(event, ui) {
num = steps[ui.value];
$("#amount").val(num);
steps2 = comb(price[num]);
$("#slider2").slider("option","max", steps2.length - 1);
$("#slider2").slider("option", "value", 0)
},
change: function(event, ui) {
num = steps[ui.value];
$("#amount").val(num);
steps2 = comb(price[num]);
$("#slider2").slider("option","max", steps2.length - 1);
$("#slider2").slider("option", "value", 0)
}
});
$("#slider").slider("option", "value", 0)
});
body {
font-family: sans-serif;
font-size: 12px;
}
#amount, #amount2, #amount3 {
font-size: 22px;
font-weight: bold;
border:none;
color: #ff5555;
background: none;
}
#slider, #slider2{
width: 300px;
}
.radio {
display: inline;
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js">
</script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<p class="radio"><input type="radio" name="xradio" value="40" checked>RADIO1</p><p class="radio"><input type="radio" name="xradio" value="50">RADIO2</p><p class="radio"><input type="radio" name="xradio" value="100">RADIO3</p>
<p>
<input type="text" id="amount" readonly>
</p>
<div id="slider"></div>
<p>
<input type="text" id="amount2" readonly>
</p>
<div id="slider2"></div>
<p>
<input type="text" id="amount3" readonly>
</p>
</body>
Собсно на жсбин впилил:
http://jsbin.com/sawexujera/edit?html,css,js,output
Поможите люди добрыя!