Задать вопрос

Как передать результат в 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);
  • Вопрос задан
  • 1604 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@wided
jsfiddle.net/0w2smb8g/5

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

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

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

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

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

Похожие вопросы