jquery UI Slider绑定选择

时间:2013-04-25 02:41:42

标签: javascript jquery slider uislider jquery-ui-slider

<p>Cost: $<span id="hddValue"></span></p>
<p>Cost2: $<span id="hddValue2"></span></p>

<select id="hdd">
  <option>1000</option>
  <option>2000</option>
  <option>3000</option>
  <option>4000</option>
  <option>5000</option>
</select>

<select id="hdd2">
  <option>1700</option>
  <option>500</option>
  <option>3700</option>
  <option>4300</option>
  <option>5070</option>
</select>

$(function () {
            var select = $('#hdd');
            var slider = $("<div id='slider'></div>").insertAfter(select).slider({
                min: 1,
                max: 5,
                range: "true",
                value: select[0].selectedIndex + 1,
                slide: function (event, ui) {
                    select[0].selectedIndex = ui.value - 1;
              $("#hddValue").text($('#hdd option:selected').text());
             $("#hddValue2").text($('#hdd2 option:selected').text());
                }
            });
        //show start value
        $( "#hddValue" ).html(  $('#slider').slider('value') );
        $( "#hddValue2" ).html(  $('#slider').slider('value') );
        });

任何人都可以帮我解决这个js脚本吗?我想要做的是当我移动滑块时,我希望每个选定的值显示在页面上,如两个选项值“hdd”和“hdd2”所示。

现在发生的事情是当我仅移动滑块#hdd更改时,当我在javascript中添加#hdd2时,hdd2 html视图只会冻结到第一个选项而不会更改。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

您的更新方法仅更新两个选择,但使用第一个值。 没试过,但看起来应该是这样的,顺便说一句。拥有相同id(你的滑块)的mutliple元素是无效的,并打破旧的浏览器。

<p>Cost: $<span class="hddvalue"></span></p>
<p>Cost2: $<span class="hddvalue"></span></p>

<select id="hdd">
  <option>1000</option>
  <option>2000</option>
  <option>3000</option>
  <option>4000</option>
  <option>5000</option>
</select>

<select id="hdd2">
  <option>1700</option>
  <option>500</option>
  <option>3700</option>
  <option>4300</option>
  <option>5070</option>
</select>

$(function () {
            var
                $selects = $('#hdd,#hdd2'),
                $values = $('.hddvalue')
            ;
            $selects.each(function (i) {
                var sel = this;
                $("<div class='slider'></div>").insertAfter(select).slider({
                    min: 1,
                    max: 5,
                    range: "true",
                    value: sel.selectedIndex + 1,
                    slide: function (event, ui) {
                        sel.selectedIndex = ui.value - 1;
                       $values.eq(i).text(jQuery(this).find('option:selected').text());
                    }
                });
            });

        //show start value
        $values.eq(0).html(  $('.slider').eq(0).slider('value') );
        $values.eq(1).html(  $('.slider').eq(1).slider('value') );
});

答案 1 :(得分:0)

$(function () {
            var
                $selects = $('#hdd,#hdd2'),
                $values = $('.hddvalue');
            $selects.each(function (i) {
                var sel = this;
                $("<div class='slider'></div>").insertAfter(sel).slider({
                    min: 1,
                    max: 5,
                    range: "true",
                    value: sel.selectedIndex + 1,
                    slide: function (event, ui) {
                        sel.selectedIndex = ui.value - 1;
                       $values.eq(i).text(jQuery(this).find('option:selected').text());
                    }
                });
            });

        //show start value
        $values.eq(0).html(  $('.slider').eq(0).slider('value') );
        $values.eq(1).html(  $('.slider').eq(1).slider('value') );
});