Установите второе значение ползунка пользовательского интерфейса jQuery на основе первого ползунка

#javascript #php #jquery

#javascript #php #jquery

Вопрос:

У меня есть два ползунка. Я пытаюсь изменить значения второго ползунка на основе первого изменения ползунка. Я не уверен, следует ли мне использовать условие if. Есть набор значений, которые я хочу реализовать. Например, если значения первого ползунка

$6000.00, $6500.00, $7000.00, $7500.00, $8000.00, $8500.00, $9000.00, $9500.00, $10000.00

и вторые значения ползунка —

$411000.00, $416500.00, $421000.00, $426500.00, $431000.00, $436000.00, $441000.00, $446000.00, $450500.00

Если диапазон первого ползунка выбран или установлен как $ 6000.00, то второй ползунок должен измениться на $ 411000.00, а если для первого ползунка установлено значение $ 6500.00, то для второго ползунка должно быть установлено значение $ 416500.00 и аналогично.

Код, который я пытаюсь-

 <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
 <script>
   $(function() {
    $("#slider1").slider({
    value: 6000,
    min: 6000,
    max: 20000,
    step: 500,
   slide: function(event, ui) {
     $("#slider1-value").val(ui.value);
     $("#slider2").slider("option", "max", ui.value * 1.5);
     var max = $("#slider2").slider("option", "max");
     $("#slider2-max").val(max);
   }
   });
   
   $("#slider2").slider({
   value: 411000,
   min: 411000,
   max: 544000,
   slide: function(event, ui) {
     $("#slider2-value").val(ui.value);
   }
   });
   
     $("#slider1-value").val($('#slider1').slider('value'));
     $("#slider2-value").val($('#slider2').slider('value'));
   });
</script>

<div class="sliders-div">
   <label for="deposit-amount">Deposit Amount:</label>
   <input type="text" id="slider1-value" readonly>
   <div id="slider1"></div>
   <label for="package-price">Package Price:</label>
   <input type="text" id="slider2-max" readonly>
   <div id="slider2"></div>
</div>
  

Любая помощь будет высоко оценена.

Ответ №1:

Вы устанавливаете максимальное значение в опции и значение ползунка, но минимальное значение ползунка 2 остается неизменным на уровне 411000, что выше вашего максимального значения.

Следующий фрагмент является рабочим примером, однако расчет с использованием значения ползунка 1 * 1.5 не равен максимальному значению, которое вы хотите установить для ползунка 2. Поэтому я предлагаю вам пересмотреть расчет и убедиться, что при изменении параметра минимальное и максимальное значения ползунка составляютсмысл.

 $(function() {
  $("#slider1").slider({
    value: 6000,
    min: 6000,
    max: 20000,
    step: 500,
    slide: function(event, ui) {
      $("#slider1-value").val(ui.value);
      $("#slider2").slider("option", "min", ui.value);
      $("#slider2").slider("option", "max", ui.value * 1.5);
      var max = $("#slider2").slider("option", "max");
      $("#slider2-max").val(max);
    }
  });
   
   $("#slider2").slider({
     value: 411000,
     min: 411000,
     max: 544000,
     slide: function(event, ui) {
       $("#slider2-value").val(ui.value);
     }
   });
   
   $("#slider1-value").val($('#slider1').slider('value'));
   $("#slider2-value").val($('#slider2').slider('value'));
 });  
 <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="sliders-div">
   <label for="deposit-amount">Deposit Amount:</label>
   <input type="text" id="slider1-value" readonly>
   <div id="slider1"></div>
   <label for="package-price">Package Price:</label>
   <input type="text" id="slider2-value" readonly>
   <input type="text" id="slider2-max" readonly>
   <div id="slider2"></div>
</div>  

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

1. Спасибо @mylee. Могу ли я каким-либо образом использовать условие if для установки значений? Спасибо.

2. Неясно, что вы имеете в виду, используя условие if для установки значений. Я не вижу причин, по которым это невозможно сделать. Вам нужно будет лучше объяснить, с какой проблемой вы столкнулись.

3. Это то, о чем я говорю — если диапазон первого ползунка выбран или установлен как $ 6000.00, то второй ползунок должен измениться на $ 411000.00, а если для первого ползунка установлено значение $ 6500.00, то для второго ползунка должно быть установлено значение $ 416500.00 и аналогично. Я не могу сделать это с помощью формулы, потому что диапазоны не являются постоянными. Мне нужно вручную установить диапазоны. Спасибо.

4. Другими словами, рассмотрим, что у меня есть два разных ползунка диапазона. Если для первого значения ползунка установлено значение A, то я хочу, чтобы для второго значения ползунка было установлено значение B. Имеет смысл в любом случае?