简体   繁体   English

使用标签更改滑块值

[英]Change Slider Value with a Label

So I created a Slider which displays it's value to a label as you can see below.所以我创建了一个 Slider,它显示它对标签的值,如下所示。 I want to add the option to change the slider value (position) with the label, so I made the label editable with contenteditable="true" - Now to change the value of the slider with my value in the label I thought of something like:我想添加使用标签更改滑块值(位置)的选项,所以我使用contenteditable="true"使标签可编辑 - 现在用我在标签中的值更改滑块的值,我想到了类似的东西:

Thought :

    $('#cv_slider').on('input', function () {
        //function
    })

I can get the value in my console for the function: console.log($(this).html()) But all my tries to apply it to my slider failed, maybe it's because I started JS recently..我可以在控制台中获取该函数的值: console.log($(this).html())但是我所有尝试将它应用于我的滑块都失败了,也许是因为我最近启动了 JS..

HTML : HTML

<div class="range-slider">
    <input id="CV_SP1" class="range-slider__range" type="range" value="0.4" min="0.1" max="1" step="0.05">
    <label contenteditable="true" id="cv_slider" class="range-slider__value">0</label>
</div>

JS : JS

var rangeSlider = function() {
    var slider = $('.range-slider'),
        range = $('.range-slider__range'),
        value = $('.range-slider__value');

    slider.each(function() {

        value.each(function() {
            var value = $(this).prev().attr('value');
            $(this).html(value * 100 + 'mm');
        });

        range.on('input', function() {
            $(this).next(value).html(this.value * 100 + 'mm');
        });
    });
};

rangeSlider();

Hello try below snippet hope some modifications will fix this issue你好,试试下面的代码片段希望一些修改可以解决这个问题

 var rangeSlider = function() { var slider = $('.range-slider'), range = $('.range-slider__range'), value = $('.range-slider__value'); slider.each(function() { value.each(function() { var value = $(this).prev().attr('value')* 100; $(this).html(value.toFixed(2)); }); range.on('input', function() { var val = this.value * 100; $(this).next(value).html(val.toFixed(2)); }); }); }; rangeSlider(); $('.range-slider__value').on('input', function (e) { var valSel = parseFloat($(this).text() / 100) || 0; $(this).prev().val(valSel); })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rangeslider.js/2.3.3/rangeslider.min.css" integrity="sha512-Rp0yZ3NMh1xOUZ4VHYggmX4pq4ZJdpcOETH03qBD5qNDsqTBw1MzUnX0T5PcTJmr2mNTOmtbxsHaGwzjylNpHA==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/rangeslider.js/2.3.3/rangeslider.css" integrity="sha512-FkNnPJevAkIHB3NqUiMadWNcoMcOCPQUMyF55JeAFZmPcSR6wK6TgZ0qL6bMrRqGNaaVS8CAwBYceORhdTUILQ==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/rangeslider.js/2.3.3/rangeslider.min.js" integrity="sha512-BUlWdwDeJo24GIubM+z40xcj/pjw7RuULBkxOTc+0L9BaGwZPwiwtbiSVzv31qR7TWx7bs6OPTE5IyfLOorboQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <div class="range-slider"> <input id="CV_SP1" class="range-slider__range" type="range" value="0.4" min="0.1" max="1" step="0.05"> <label contenteditable="true" id="cv_slider" class="range-slider__value">0</label>mm </div> <div class="range-slider"> <input id="CV_SP2" class="range-slider__range" type="range" value="0.4" min="0.1" max="1" step="0.05"> <label contenteditable="true" id="cv_slider" class="range-slider__value">0</label>mm </div> <div class="range-slider"> <input id="CV_SP3" class="range-slider__range" type="range" value="0.4" min="0.1" max="1" step="0.05"> <label contenteditable="true" id="cv_slider" class="range-slider__value">0</label>mm </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM