2015-07-26 31 views
5

Próbuję użyć tabel danych wtyczki jquery, ale nie mogę załadować tej funkcji. Wciąż otrzymuję ten błąd:

Uncaught TypeError: $(...).DataTable is not a function 
(anonymous function) @ index.php:167 
m.Callbacks.j @ jquery.min.js:2 
m.Callbacks.k.fireWith @ jquery.min.js:2 
m.extend.ready @ jquery.min.js:2 
J @ jquery.min.js:2 

Poniżej jest mój kod JS:

$(document).ready(function(){ 
     $('table#tableID').DataTable({ 
      paging: true 
     }); 
    }); 

używam jQuery V. 1.11.1 Starałem się rozejrzeć za rozwiązanie i zobaczył ludzi mówiących o jQuery nie jest załadowany. Z powodzeniem uruchamiam inne funkcje jQuery na tej samej stronie. Jest to również jedyna funkcja .ready na tej stronie. Możemy stwierdzić, że jQuery jest obecny, ponieważ gdy dokument jest gotowy, wykonuje on tę funkcję. Próbowałem również umieścić import pliku js i css w wielu miejscach, zgodnie z sugestią, ale nie działał. Czy ktoś ma jakąkolwiek wskazówkę, jak to naprawić?

redaguje:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    <link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.css"> 
<script type="text/javascript" charset="utf8" src="/js/jquery.dataTables.js"></script> 

Odpowiedz

9

Zamówienie skryptów jest ważne, gdy są one zależne od bibliotek lub innych skryptów.

Po kodzie jQuery.js należy uwzględnić każdy związany z jQuery kod. Oznacza to, że wtyczki i każdy napisany kod używają jQuery. Podobnie dowolny kod piszesz, że używa wtyczki muszą załadowanej przed kodem

Wystarczy zmienić kolejność tak jquery.js ładunki przed dataTables.js

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript" charset="utf8" src="/js/jquery.dataTables.js"></script> 

także upewnić się, że tylko raz w historii obejmują jQuery na stronie ... nie raz na wtyczkę, jak niektórzy czasami robią

+0

Dziękuję za odpowiedź.Zmieniłem kolejność, ale nadal wydaje się, że daje ten sam błąd. :(Dodałem tylko jQuery raz – SML

+2

wygląd w zakładce sieciowej narzędzi przeglądarki przeglądarki (F12) ... upewnij się, że plik się ładuje Powinien mieć status 200 – charlietfl

+1

Znalazłem błąd: Miałem wiele odniesień do jQuery !!! Dzięki !!! : D – SML

1

To dlatego, że jesteś ładowania biblioteki jQuery przed załadowaniem sam jQuery. jQuery musi być załadowany przed załadować biblioteki, można to zrobić poprzez włączenie <script> dla jQuery przed biblioteką:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript" charset="utf8" src="/js/jquery.dataTables.js"></script> 
+2

Dziękuję za odpowiedź. Zmieniłem kolejność, ale nadal wydaje się, że daje ten sam błąd. :( – SML

Powiązane problemy