【问题标题】:Problem with jQuery slider - timejQuery滑块的问题 - 时间
【发布时间】:2010-12-28 19:14:03
【问题描述】:

我想制作一个滑块来选择时间(从 1:00 到 4:00),但它不起作用。它不与“选择”通信。谁能帮帮我?

 <script> 
    $(function() {
        var select = $( "#czastrwania" );
        var slider = $( "<div id='slider'></div>" ).insertAfter( select ).slider({
        min: 60,
        max: 240,
        step: 30,
        range: "min",
value: select[ 0 ].selectedIndex + 1,
            slide: function( e, ui ) {
              var hours = Math.floor(ui.value / 60);
            var minutes = ui.value - (hours * 60);

            if(hours.length == 1) hours = '0' + hours;
            if(minutes.length == 1) minutes = '0' + minutes;
            select[ 0 ].selectedIndex = ui.value - 1;
            }
        });
        $( "#czastrwania" ).change(function() {
            slider.slider( "value", this.selectedIndex + 1 );
        });
    });
    </script>
<select id="czastrwania" name="czastrwania">
 <option value="1:00">1:00</option>
    <option value="1:30">1:30</option>
    <option value="2:00">2:00</option>
    <option value="2:30">2:30</option>
    <option value="3:00">3:00</option>
    <option value="3:30">3:30</option>
    <option value="4:00">4:00</option>  
    </select>

【问题讨论】:

    标签: php jquery time slider


    【解决方案1】:

    使用 jQuery 你可以说

    select.val('4:30')
    

    不需要这个:

    select[ 0 ].selectedIndex =  ui.value - 1;
    

    【讨论】:

      【解决方案2】:

      现在它的工作率为 50%。如果我在滑块上更改它会在选择时更改,但是当我在选择时更改值时它不起作用。

      <script> 
          $(function() {
              var select = $( "#czastrwania" );
              var slider = $( "<div id='slider'></div>" ).insertAfter( select ).slider({
              min: 60,
              max: 240,
              step: 30,
              range: "min",
      value: select[ 0 ].selectedIndex + 1,
                  slide: function( e, ui ) {
                  var hours = Math.floor(ui.value / 60);
                  var minutes = ui.value - (hours * 60);
      
                  if(minutes == 0) minutes = '00';
                  select[ 0 ].value = hours+':'+minutes;
                  }
              });
              $( "#czastrwania" ).change(function() {
                  slider.slider( "value", select[ 0 ].value );
              });
          });
          </script> 
      

      【讨论】:

        【解决方案3】:

        解决了。

        <script> 
            $(function() {
                var select = $( "#czastrwania" );
                var slider = $( "<div id='slider'></div>" ).insertAfter( select ).slider({
                min: 60,
                max: 240,
                step: 30,
                range: "min",
        value: select[ 0 ].selectedIndex + 1,
                    slide: function( e, ui ) {
                    var hours = Math.floor(ui.value / 60);
                    var minutes = ui.value - (hours * 60);
        
                    if(minutes == 0) minutes = '00';
                    select[ 0 ].value = hours+':'+minutes;
                    }
                });
                $( "#czastrwania" ).change(function() {
                    slider.slider( "value", 60 * select[ 0 ].value.replace(':','.') );
                });
            });
            </script>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-24
          • 2011-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多