2012-07-30 16 views
17

Miałem ten stary suwak jQuery UI, który działał dobrze kilka miesięcy temu, ale teraz wydaje mi się, że czytam wyjątek: Nie można wywołać metody 'addClass' niezdefiniowany. Sprawdziłem wartości przekazywane do suwaka i są to zwykłe daty JavaScript.suwak jQuery UI - Nie można wywołać metody 'addClass' z 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); 
     } 
     }); 

Czy istnieje jakiś szczególny powód, dla którego mógłbym dostać ten nowy błąd?

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

+0

Czy jesteś w stanie ustawić punkt przerwania i przejść przez kod? Błąd brzmi dla mnie, że "addClass" jest gdzieś wywoływany, a przekazywana do niego wartość jest niezdefiniowana. Jeśli przejdziesz przez ten kod, być może zobaczysz, czy wartości są poprawnie inicjowane.Czy ostatnio zmieniłeś wersję jQuery? – Sam

+0

Czy sprawdziłeś log? jQuery UI ma kilka błędów, drugiego dnia doświadczyłem męczącego błędu w konkretnej implementacji datepicker, to nie działa, jeśli istnieje wejście tekstowe na tej samej stronie! – SexyBeast

+0

Zakładam, że "Nie można wywołać metody" addClass "nieokreślonego." pochodzi z pliku jquery.js? –

Odpowiedz

35

Dla każdego, kto czyta na ten temat, jeśli pobierasz z CDN, spróbuj wyciągnąć z najnowszej wersji interfejsu jQuery. Mam również ten problem i został rozwiązany przy użyciu późniejszej wersji jQuery UI.

+2

Miałem ten sam problem z wtyczką przewijania i wyciągnąłem wersję 1.8.23 do mojego projektu i teraz działa jak urok! –

+0

Sukces! Cieszę się, że mogłem kogoś uratować. :-) – Vinay

+3

Chciałbym móc "unieść" tę odpowiedź z milionem. Dzięki! –

19

I rozwiązać ten problem za pomocą liczb naturalnych "wysoki", "MAX" i "wartości". Może twoje ustawienia wartości null.
specyfikacja jQuery Slider mówi:

  • Maksymalna liczba Domyślnie: 100
  • min Ilość domyślna: 0
  • Liczba Wartość domyślna: 0

So "wartości" są tablica liczb.

+0

To rozwiązało problem dla mnie, dzięki. – Raspo

+0

ditto. Ustawiłem 'wartość' na niezdefiniowaną zmienną. – merv

+0

Przechwyciłem mój min/max etc z wejść za pomocą '.val()', musiałem zawinąć je w 'parseInt()' i to posortowałem to dla mnie –

1

Inna możliwość - ten błąd może pojawić się, jeśli brakuje minimum lub maksimum dla suwaka. Jeśli opcje startFiling lub endFiling nie są zgodne z datą, kod suwaka kończy się niepowodzeniem podczas próby obliczenia nowej pozycji uchwytu.

10

Dla każdego, kto nadal ma ten problem, należy upewnić się, że wartości dodajesz (min, max, i values są wszystkie numery i nie STRINGS!

próbuje zdiagnozować problem gdzie poniższy kod był zepsuty :

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() 
    } 
}) 

jako t.attr() zwraca ciąg, Slider został braku ustawić valueMouse na linii 12843 w wersji 1.10.1 z jQuery UI Zamiast wartość, to wracał ciąg (coś podobnego do 39.99549.21 (min. wartość 39.99 połączony z 549.21 - wartość procentowa * wartość maksymalna)

Mam nadzieję, że komuś pomóż!

+0

Nie używaj attr ('data-min'), używaj danych ('min') w jQuery, standard HTML5 –

+0

Mój problem polegał na przekazywaniu 'String' zamiast 'Number', aby zaktualizować wartości suwaków – bFunc

3

Miałem ten problem również z najnowszymi wersjami. Rozwiązanie to jest proste: użyciu parseInt() przekazać wartości dynamicznych suwaków

Setter przykład dla jquery ui suwaka:

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

rozwiązać ten problem stosując niemodyfikowany jQuery UI.min.js. Użycie niestandardowego skryptu spowodowało błąd, np. JQuery-UI-custom.js

Powiązane problemy