Как передать результат в ionRangeSlider?

Привет всем! Уже 4 дня мучаюсь с проблемой, как передать результат с одного слайдера на второй.
Плагин качал тут ionden.com/a/plugins/ion.rangeSlider/en.html
Есть такой шаблон
<div class="rande_input">
                            <h3>Бюджет</h3>
      <input type="text" id="mysql" class="slider-kit" value=""/>
       <!--<input type="text" class="js-range-slider-1" value="" />-->
      <h3>Клиентов</h3>
      <input type="text" id="disk" class="slider-kit" value=""/>
       <!-- <input type="text" class="js-range-slider-2" value="" />-->


      
        <div id="monthly-calc">0 руб.</div>	
        <div id="monthly-cal">0 клиентов</div>	
                                </div>


JS функция калькулятора
function calculate() {
var disk = $('#disk').val() * 6.20;
  var db = $('#mysql').val() / 6.20;
  var monthly = (disk);
  var monthl = (db);
  $('#calculate-result').html('');
  $('#monthly-calc').text(monthly.toFixed(1) + ' руб.');
    $('#monthly-cal').text(monthl.toFixed(2) + ' клиентов');
}

        $("#mysql").ionRangeSlider({
             type: "single",
            hide_min_max: true,
            step: 6.2,
            min: 620,
      max: 10000,
             from:0,
            postfix:" руб.",
           onChange: function (data) {
        s1.update({
            from: data.from
        });
        s2.update({
            from: data.from
        });
    },
             onUpdate:calculate
       
        });
          $("#disk").ionRangeSlider({
             type: "single",
             hide_min_max: true,
             step: 0,
              min: 100,
      max:10000,
             from:0,
              postfix:" клиентов",
            onChange: function (data) {
        s2.update({
            from: data.from
        });
        s1.update({
            from: data.from
        });
    },
              onUpdate:calculate
        });

s1 = $("#mysql").data("ionRangeSlider");
s2 = $("#disk").data("ionRangeSlider");
    
        calculate()
      });
    })(jQuery);


Суть проблемы, нужно результат Клиентов передать в ползунок.
a3ddedd34da642ddb21bfb36b08921e2.png
И проблема что он сильно тормозит, когда одновременно работают ползунки слайда. Вот как он работает jsfiddle.net/Timwer/0w2smb8g/3 Где ошибка?

Ошибку с тормозами решил:
код такой
(function($) {
        $(function(){
            
        var s1 = $(".s1"), s2 = $(".s2"), $range = $(".range"), $result = $(".result"), $sum = $(".sum");
function calculate() {
var disk = $('#disk').val() * 6.20;
  var db = $('#mysql').val() / 6.20;
  var monthly = (disk);
  var monthl = (db);
  $('#calculate-result').html('');
  $('#monthly-calc').text(monthly.toFixed(1) + ' руб.');
    $('#monthly-cal').text(monthl.toFixed(2) + ' клиентов');
}

        $("#mysql").ionRangeSlider({
             type: "single",
            hide_min_max: true,
            step: 6.2,
            min: 620,
      max: 10000,
             from:0,
            postfix:" руб.",
           onChange: function (data) {
        s2.update({
            from: data.from
        });
       
    },
             onUpdate:calculate
       
        });
          $("#disk").ionRangeSlider({
             type: "single",
             hide_min_max: true,
             step: 0,
              min: 100,
      max:10000,
             from:0,
              postfix:" клиентов",
            onChange: function (data) {
       
        s1.update({
            from: data.from
        });
    },
              onUpdate:calculate
        });

s1 = $("#mysql").data("ionRangeSlider");
s2 = $("#disk").data("ionRangeSlider");
    
        calculate()
      });
    })(jQuery);
  • Вопрос задан
  • 1579 просмотров
Решения вопроса 1
@wided
jsfiddle.net/0w2smb8g/5

Во-первых, тебе стоит научится пользоваться дебагером JS. А также стилизировать код по-человечески. Во-вторых, научись выносить данные в переменные. В-третьих, избегай избыточного кода и вычислений (хотя в моем примере это присутствует).

А конкретно у тебя ошибка была в том, что ты пытался использовать методы не того типа. Гугли "утинная типизация". В JS она играет важную роль.

В том варианте что я скинул есть правки и работает синхронно и без тормозов. Попытайся сам разобраться.

ПС: "Почему не работает?" это не вопрос.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Еще демку посмотрите, может будет понятней: jsfiddle.net/IonDen/4k3d4y3s
У меня их много, на всякие случаи жизни)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
02 июн. 2024, в 01:13
2000 руб./за проект
01 июн. 2024, в 23:49
50000 руб./за проект
01 июн. 2024, в 23:20
30000 руб./за проект