响应滑块javascript

时间:2015-02-16 10:54:01

标签: javascript slider

我正在尝试创建一个响应式滑块。我搜索了许多水平滑块示例,发现这个是最直接和最简单的。现在我想调整代码以使其响应。例如,2013年的滑块比应该发生的事情要多。我需要知道的是我将在代码中实现这一点。因此,如果任何人可以帮助调整下面的代码将非常有帮助。对于每个可以滑动的数字,只是一个不同的打印声明会很棒。提前谢谢!

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Slider - Slider bound to select</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    var select = $( "#minbeds" );
    var slider = $( "<div id='slider'></div>" ).insertAfter( select ).slider({
      min: 1,
      max: 8,
      range: "min",
      value: select[ 0 ].selectedIndex + 1,
      slide: function( event, ui ) {
        select[ 0 ].selectedIndex = ui.value - 1;
      }
    });
    $( "#minbeds" ).change(function() {
       slider.slider( "value", this.selectedIndex + 1 );
    });
  });
   </script>
</head>
<body>

<form id="reservation">
   <label for="minbeds">Minimum number of beds</label>
   <select name="minbeds" id="minbeds">
    <option>2013</option>
    <option>2014</option>
    <option>2015</option>
    <option>2016</option>
    <option>2017</option>
    <option>2018</option>
    <option>2019</option>
    <option>2020</option>
   </select>
</form>


</body>
</html> 

1 个答案:

答案 0 :(得分:1)

这在滑动功能

中发生
slide: function( event, ui ) {
    console.log(ui.value); // prints 1 for 2013, 2 for 2014 ...
    select[ 0 ].selectedIndex = ui.value - 1;
}

要使其响应,请使用类似

的内容
slide: function( event, ui ) {
    var index = ui.value-1;
    select[ 0 ].selectedIndex = index;
    if (select[0][index].text === "2013") { // text works, but innerHTML, innerText and label do too
        console.log("2013!");
    }
}