атрибут шага обновления пользовательского интерфейса jQuery, но не работает - PullRequest
1 голос
/ 27 июня 2019

Я использую плагин ползунка диапазона jQuery с именем asRange

Он работает вполне нормально, но когда я обновляю атрибут step условным оператором, этоОбновление значения в DOM нормально, но не совсем так, как ожидалось.Мне нужно, чтобы значение шага было «0,001», когда значение диапазона меньше 1, и значение шага должно быть «1», если значение диапазона больше 1.

Если вы изучаете элементы DOM с помощью инструментов разработчика, вы увидите, что значение шага обновляется должным образом, но не работает должным образом.

Я уже несколько часов пытаюсь это сделать.Не могу ничего найти.Любая помощь будет высоко ценится.

            <input class="range-slider" type="range" min="0.007" max="10" name="price" step="0.001" />
            <script>
              $(document).ready(function() {
                $(".range-slider").asRange();

                $(".range-slider").on('asRange::change', function (e) {
                var val = $(".range-slider").asRange('get');

                  if (val > 1) 
              {
                  $(".range-slider").attr("step" , "1");
              }
              else if (val <= 1) 
              {
                  $(".range-slider").attr("step" , "0.001");
              }


              });
              });
            </script>

1 Ответ

1 голос
/ 27 июня 2019

Вместо этого используйте метод обновления библиотеки:

$(document).ready(function() {
  $(".range-slider").asRange();

  $(".range-slider").on('asRange::change', function(e) {
    var val = $(".range-slider").asRange('get');

    if (val > 1) {
      $(".range-slider").asRange('update', { step: 1 }); // Here
    } else if (val <= 1) {
      $(".range-slider").asRange('update', { step: 0.001 }); // And Here
    }
  });
});

Элемент DOM больше не обновляет объект asRange, тогда при изменении элемента DOM созданный объект asRange не будет отражен.

...