Получить значение ценового слайдера в скрытом поле? - PullRequest
0 голосов
/ 05 марта 2020

Я хочу обновить значение скрытого поля значением ползунка цены. Я использую немного jQuery, чтобы выполнить sh это.

Код ниже работает, но мне нужно setTimeout, чтобы получить правильное значение. Без setTimeout он обновляет значение скрытого поля предыдущим значением ползунка, а не самым последним.

Поэтому мне было интересно, есть ли также проверка / событие, подобное «на остановке слайда», поэтому код выполняется только тогда, когда ползунок больше не активен. Есть идеи?

Ниже моего кода:

<html>
<head>
<script>
        (function( $ ) {
            $(document).ready(function() {

                var tw_total = $('.btQuoteTotalCalc').text();
                $("#calculated_total").attr("value",tw_total);

                $('.btQuoteSlider').on('slide', function(event, ui) {
                    setTimeout(function() {
                        var tw_total = $('.btQuoteTotalCalc').text();
                        $("#calculated_total").attr("value",tw_total);
                    }, 500);
                });

            });
        }(jQuery));
</script>
</head>
<body>
     <div class="btQuoteSlider"></div>
     <div class="btQuoteTotalCalc">Slider total</div>

     <input type="hidden" name="calculated_total" value="" id="calculated_total">
</body>
</html>

1 Ответ

1 голос
/ 07 марта 2020

Я думаю, что вы используете jQuery библиотеку пользовательского интерфейса для элемента слайдера, и если это так, вам не нужна функция setTimeout. Само событие дает значение, к которому будет перемещаться дескриптор, если событие не отменено.

Попробуйте вместо этого -

$('.btQuoteSlider').on('slide', function(event, ui) {
    $("#calculated_total").attr("value", ui.value);
});

Ссылка: https://api.jqueryui.com/slider/#event -slide

...