Подтвердить что ты не робот

JQuery UI slider - Не удается вызвать метод addClass из undefined

У меня был этот старый слайдер jQuery UI, который работал очень хорошо несколько месяцев назад, но теперь я, кажется, получаю сообщение об исключении: не могу вызвать метод addClass из undefined. Я проверил значения, передаваемые в ползунок, и они являются регулярными датами 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

4b9b3361

Ответ 1

Для всех, кто читает этот вопрос, если вы вытаскиваете CDN, попробуйте вытащить из последней версии пользовательского интерфейса jQuery. Я также получил эту проблему, и она была решена с использованием более поздней версии пользовательского интерфейса jQuery.

Ответ 2

Я решил эту ошибку, используя целые числа в "min", "max" и "values". Может быть, вы устанавливаете нулевые значения.

Спецификация jQuery Slider гласит:

  • Максимальное число по умолчанию: 100
  • Минимальное число по умолчанию: 0
  • Значение по умолчанию: 0

Таким образом, "значения" являются массивом чисел.

Ответ 3

Для тех, кто все еще имеет эту проблему, убедитесь, что значения, которые вы добавляете (min, max и values, являются 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 в строке 12843 версии 1.10.1 jQuery UI. Вместо того, чтобы быть значением, он возвращал строку (что-то похожее на 39.99549.21 (минимальное значение 39.99, связанное с 549.21 - процентное значение * max)

Надеюсь, что это поможет кому-то!

Ответ 4

У меня тоже была проблема с последними версиями. Решение легко: используйте parseInt() для передачи динамических значений слайдерам

Пример сеттера для слайдера jquery ui:

    $("#mySlider").slider("option",{min: parseInt(value.min), max:parseInt(value.max),value: parseInt(value.active)});

Ответ 5

Другая возможность - эта ошибка может возникнуть, если для слайдера отсутствуют минимальные или максимальные значения. Если ваш startFiling или endFiling не оценивают дату, код слайдера терпит неудачу при попытке вычислить новую позицию дескриптора.

Ответ 6

решил проблему с использованием немодифицированного jQuery-UI.min.js. Использование пользовательского script вызвало ошибку i.e jQuery-UI-custom.js

Ответ 7

JQuery UI Slider плагин мин и макс опций принимает только номер. Так что по вашему требованию разберите их на целое число или число с плавающей точкой.

Для получения дополнительной информации посетите link- http://api.jqueryui.com/slider/