2012-10-18 19 views
5

Znalazłem kilka poprawek dla tego problemu, ale nie są one specyficzne dla tego. Czytałem proste rzeczy takie jak Sortable() muszą być małe. Oczywiście nie mam go ustawionego jako pierwszy.Uncaught TypeError Obiekt nie ma metody "sortable"

miałem już tej pracy, a potem nagle postanowił wypluć następujących w konsoli Uncaught TypeError: Object [object Object] has no method 'sortable' na linii: 210, która correspondes do:

 

    // Line 210 is below 
    $('.sortable').sortable({ 
     stop: get_post_order 
    }).disableSelection(); 
    // Check new order 
    function get_post_order() { 
     var post_list = [], pids; 
     $('.inner-pop-list li a').each(function() { 
      pids = $(this).attr('rel'); 
      post_list.push(pids); 
     }); 
     $('.export').attr('href', '?format=pdf&pids='+post_list); 
    } 

Należy aktualizowanie tablicę post_list po lista została zmieniono kolejność. Model get_post_order nie działa wcale. Próbowałem dodać funkcję bezpośrednio do stop: function() {...}, ale nadal bez zmian.

Wszelkie pomysły, jestem dość zaskoczony.

Dzięki

+3

Czy jesteś pewien, że twoje jquery i jquery-ui libaries są poprawnie załadowane? –

+0

Cóż, działało wcześniej i nie zmieniłem niczego w tej części witryny. Więc tak, jestem prawie pewien. Potraktuję potrójnie. – zilj

+0

Wszystko wygląda dobrze. Funkcja przeciągania działa, więc domyślam się, że ładuje się. – zilj

Odpowiedz

2

Naprawiono, czasami nowe podejście od innych ludzi prowadzi do odpowiedzi. Dzięki za pomoc. To sprawiło, że spojrzałam na nagłówek mojej strony. Zauważyłem, że już dodałem deklarację sortable() w nagłówku. Potem ponownie odwołałem się do sortowania w zewnętrznym skrypcie (który był linią 210), powodując konflikt.

Tak więc odpowiedź brzmi, referencyjna do sortowania() raz!

1

Jest możliwe, że kod JavaScript nie jest w $ (document) .ready i jest wykonywany przed biblioteką ui został załadowany.

+0

Próbowałem, nie ma szczęścia. – zilj

+0

Wygląda na to, że sortable nie jest zdefiniowany lub jeszcze nie został załadowany. Nie wiem, ale jest to typowy błąd, gdy moduł jquery nie jest załadowany. Być może twój jquery-ui nie ma modułu (np. Niestandardowy jquery-ui) lub twój kod jest uruchamiany przed załadowaniem jquery-ui. – Blazes

+0

Znalazłem rozwiązanie, patrz poniżej. Dzięki za poświęcony czas i komentarze. – zilj

Powiązane problemy