如何在jquery中创建一个范围滑块,用于每日,每周和每月的步骤

时间:2012-05-24 13:01:17

标签: javascript jquery

我想创建一个范围滑块,可以按下拉菜单{每日,每周和每月}进行操作。

选择每日步骤更改为7,minDate chages更改为maxDate表示今天日期-7。选择每周步骤更改为4(7-7-7-7 = 30),minDate更改为(maxDate)今天日期-30。 选择每月步骤更改为12(12个月= 365天),minDate更改为(maxDate)今天日期-365。

鼠标指针都指向maxDate

var maxdate1 = new Date(),
    minDate1 = removeDays(new Date(), -7);
alert(minDate1);

$( "#slider" )
  .slider({range: true,
      step:  1,
      animate:true,
      value: maxDate1,
      values [minDate1, maxDate1],
      max: Math.floor((maxDate1.getTime() - minDate1.getTime()) / 86400000),

      slide: function(event, ui) {

        var date = new Date(minDate1.getTime());
        date.setDate(date.getDate() + ui.values[0]);

        $('#startDate').val($.datepicker.formatDate('mm/dd/yy', date));
        $('#from').val($.datepicker.formatDate('M d, yy', date));          

        date = new Date(minDate1.getTime());

        date.setDate(date.getDate() + ui.values[1]);

        $('#endDate').val($.datepicker.formatDate('mm/dd/yy', date));
        $('#to').val($.datepicker.formatDate('M d, yy', date));
      }
  });

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望能够在初始化之后更改滑块的参数(例如步长,最小值,最大值等)。这样的事情应该有效:

$('#dropdown').change(function() {
    switch ($(this).val()) {
    case 'daily':
        $('#slider').slider('option', 'step', 1);
        break;
    case 'weekly':
        $('#slider').slider('option', 'step', 7);
        break;
    case 'monthly':
        $('#slider').slider('option', 'step', 30);
        break;
    }
});