slider slidechange
Добрый день!
Помогите, пожалуйста, разобраться. Есть два слайдера: slider1, slider2. Для каждого слайдера определено окно, в котором пишется числовое значение бегунка: text1, text2. Бегунки должны быть взаимозависимыми: сумма числовых значений этих бегунков должна быть равна 100. Цель: пользователь перемещает бегунок, другой перемещается автоматически, при этом обновляются text1, text2. Где ошибка?
$("#slider1,#slider2").bind('slidechange', function(event,info) {
$("#slider1,#slider2").not($(this)).slider('value',100 - $(this).slider('value'));
$("#text1").attr('value',$("#slider1").slider('value'));
$("#text2").attr('value',$("#slider2").slider('value'));
$("#text1").trigger();
$("#text2").trigger();
});
Спасибо! С уважением, Денис |
Dyonis417,
бесконечная рекурсия не все браузеры выдержат -- в slidechange можно только имитацию сделать для второго ползунка но никак не устанавливать значение иначе замкнутая цепочка |
рони,
а если кодом, то как эта имитация выглядит? Неужели нет решения? |
зависимые ползунки
Dyonis417, можно и без stop если ненужно запрашивать текущее установленное значение ползунка - и то если изменять значение непрограммно: передвигая рукоятку ползунка
:cray:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>slider demo</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/south-street/jquery-ui.css">
<style>
#slider0, #slider1 { margin: 10px; width: 300px; }
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
</head>
<body>
<input id="text0">
<div id="slider0"></div>
<input id="text1">
<div id="slider1"></div>
<script>
var sliders = $( "#slider0, #slider1" );
sliders.slider(
{
stop: function(event, ui) {
var i = sliders.index(this);
$("#text"+i).val(ui.value);
i ^= 1;
$("#slider"+i).slider("value", 100-ui.value);
},
change: function( event, ui ) {
var i = sliders.index(this);
$("#text"+i).val(ui.value);
i ^= 1;
$("#slider"+i+ " .ui-slider-handle").css("left", (100-ui.value)+"%");
$("#text"+i).val(100 - ui.value);
},
slide: function( event, ui ) {
var i = sliders.index(this);
$("#text"+i).val(ui.value);
i ^= 1;
$("#slider"+i+ " .ui-slider-handle").css("left", (100-ui.value)+"%");
$("#text"+i).val(100 - ui.value);
}
}
);
$( "#slider0" ).slider("value", 50)
</script>
</body>
</html>
|
Dyonis417,
для понимания 32 строку нельзя вставлять ни в change ни в slide |
рони,
Спасибо! То что надо! Понял, что был не прав. С уважением, Денис |
Может кто-нибудь подсказать, как сделать в такой зависимости 4, а не 2 слайдера? Буду очень благодарен.
|
Клавер,
какая проблема из 100 вычесть значение ползунка и остаток распределить по остальным ползункам? |
Проблема в реализации из-за недостатка опыта и кривых мозгов:D
|
Клавер,
опишите зависимость ваших ползунков |
| Часовой пояс GMT +3, время: 06:26. |