19

几个月前我有一个旧的 jQuery UI 滑块,它工作得很好,但现在我似乎得到了一个异常读数:无法调用未定义的方法“addClass”。我检查了传递到滑块的值,它们是常规的 Javascript 日期。

  $('#dateFilter').click(function() {
    return $('#sliderContainer').slideToggle(200);
  });

  $(function() {
    var endFiling, startFiling;
    startFiling = Date.parse($('#startFiling').val());
    endFiling = Date.parse($('#endFiling').val());
    return $('#filingDateSlider').slider({
      range: true,
      min: startFiling,
      max: endFiling,
      step: 86400000,
      values: [startFiling, endFiling],
      slide: function(event, ui) {
        var eD, end, sD, start;
        sD = new Date(ui.values[0]);
        start = dateFormat(sD);
        eD = new Date(ui.values[1]);
        end = dateFormat(eD);
        $('#filingStartDate').text(start);
        return $('#filingEndDate').text(end);
      }
        });

我可能会收到这个新错误是否有特殊原因?

http://i.imgur.com/xC2E6.jpg

4

7 回答 7

35

对于任何阅读此问题的人,如果您从 CDN 中提取,请尝试从最新的 jQuery UI 版本中提取。我也遇到了这个问题,通过使用更高版本的 jQuery UI 解决了这个问题。

于 2012-09-24T20:56:18.277 回答
22

我通过在“min”、“max”和“values”中使用整数解决了这个错误。也许您正在设置空值。

jQuery Slider 规范说:

  • 最大数量 默认值:100
  • 最小值 默认值:0
  • 值 数字 默认值:0

所以“值”是一个数字数组。

于 2012-08-06T06:49:59.573 回答
10

对于仍然遇到此问题的任何人,请确保您添加的值 ( minmaxvalues都是 NUMBERS 而不是 STRINGS!

一直在尝试诊断以下代码失败的问题:

t.slider({
  range : true,
  min   : t.attr('data-min'),
  max   : t.attr('data-max'),
  values: [t.attr('data-min'), t.attr('data-max')],
  step  : 1.00,
  slide : function (e, ui) {
    var
      v = (s == 'price') ? '£' + ui.values[0] + ' - £' + ui.values[1] : ui.values[0] + ' - ' + ui.values[1] + 'kg'
    $('#filter-' + s).html(v)
  },
  stop  : function () {
    Items.filter()
  }
})

t.attr()返回 STRING 时,Slider 未能valueMouse在 jQuery UI 版本 1.10.1 的第 12843 行设置。它不是一个值,而是返回一个字符串(类似于39.99549.21(min value of 39.99concatenated with 549.21- a percent * max value)

希望对某人有所帮助!

于 2013-03-09T16:56:27.933 回答
3

我的最新版本也有这个问题。解决方案很简单:使用parseInt()将动态值传递给滑块

jQuery ui 滑块的 Setter 示例:

    $("#mySlider").slider("option",{min: parseInt(value.min), max:parseInt(value.max),value: parseInt(value.active)});
于 2014-02-02T08:43:38.387 回答
1

另一种可能性 - 如果滑块缺少最小值或最大值,则会出现此错误。如果您的 startFiling 或 endFiling 未计算日期,则滑块代码在尝试计算新句柄位置时会失败。

于 2013-01-20T16:53:53.860 回答
0

使用未修改的 jQuery-UI.min.js 解决了这个问题。使用自定义脚本导致错误,即 jQuery-UI-custom.js

于 2014-04-09T11:17:45.217 回答
0

jQuery UI Slider 插件最小和最大选项只接受数字。因此,根据您的要求将它们解析为整数或浮点数。

有关详细信息,请访问链接 - http://api.jqueryui.com/slider/

于 2018-07-11T05:16:08.040 回答