2012-07-30 4 views
17

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

$('#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

+0

Можете ли вы установить точку останова и пройти через код? Мне кажется, что ошибка «addClass» вызывается где-то, и переданное ей значение не определено. Если вы можете пройти через код, возможно, вы увидите, правильно ли инициализируются значения.Кроме того, недавно вы изменили версию jQuery? – Sam

+0

Вы проверили журнал? jQuery UI имеет некоторые ошибки, на днях я испытал утомительную ошибку в конкретной реализации datepicker, она не работает, если есть текстовый ввод на той же странице! – SexyBeast

+0

Я предполагаю, что «Невозможно вызвать метод« addClass »неопределенного.» происходит из вашего файла jquery.js? –

ответ

35

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

+2

У меня была такая же проблема с плагином прокрутки, и я вытащил версию 1.8.23 в свой проект, и теперь он работает как шарм! –

+0

Успех! Рад, что я мог кого-то сэкономить. :-) – Vinay

+3

Хотелось бы, чтобы я смог «ответить» на этот ответ миллионом. Благодаря! –

19

Я решил эту ошибку с помощью целых чисел в "мин", "Max" и "ценности". Возможно, вы устанавливаете нулевые значения.
JQuery Slider спецификация говорит:

  • макс Номер по умолчанию: 100
  • мин Количество по умолчанию: 0
  • Номер Значение по умолчанию: 0

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

+0

Это решило проблему для меня, спасибо. – Raspo

+0

так же. У меня было значение 'value' для неопределенной переменной. – merv

+0

Я хватал свой min/max и т. Д. Из входов, используя '.val()', мне пришлось обернуть их в 'parseInt()', и это отсортировало его для меня –

1

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

10

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

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

+0

Не использовать attr ('data-min'), использовать данные ('min') в jQuery, стандарт HTML5 –

+0

. Моя проблема заключалась в передаче 'String' вместо 'Number' для обновления значений ползунка – bFunc

3

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

сеттер пример JQuery UI слайдер:

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

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

Смежные вопросы