2

我想创建一个范围滑块,它在下拉菜单{每日、每周和每月}上运行。

在选择每日步数时更改为 7,minDate 更改为 maxDate 表示今天的日期为 7。在选择每周步骤时,更改为 4(7-7-7-7=30),minDate 更改为 (maxDate)today date-30。在选择每月步骤时,将更改为 12(12 个月 = 365 天),将 minDate 更改为 (maxDate)today date-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));
      }
  });
4

1 回答 1

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;
    }
});
于 2013-09-12T20:07:34.393 回答