web-dev-qa-db-de.com

TypeError: $ (...) DataTable ist keine Funktion

Ich versuche, die Jquery-Plugin-Datentabellen zu verwenden, aber ich kann die Funktion nicht laden. Ich bekomme diesen Fehler immer wieder:

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

Unten ist mein JS-Code:

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

Ich verwende jQuery V. 1.11.1. Ich versuchte, nach einer Lösung zu suchen, und sah, wie Leute über jQuery sprachen, das nicht geladen wurde. Ich führe andere jQuery-Funktionen auf derselben Seite erfolgreich aus. Dies ist auch die einzige .ready-Funktion auf dieser Seite. Wir können feststellen, dass jQuery vorhanden ist. Wenn das Dokument fertig ist, führt es die Funktion aus. Ich habe auch versucht, die Importe der Dateien js und css an mehreren Stellen zu platzieren (wie vorgeschlagen), funktionierte jedoch nicht. Hat jemand eine Ahnung, wie man das beheben kann?

EDITS:

<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>
5
SML

Die Reihenfolge der Skripte ist wichtig, wenn sie von Bibliotheken oder anderen Skripten abhängig sind.

Nach jQuery.js muss jeder mit jQuery zusammenhängende Code enthalten sein. Dies bedeutet Plugins und jeglichen Code, den Sie schreiben, der jQuery verwendet. In ähnlicher Weise muss bei jedem Code, den Sie mit einem Plugin schreiben, das Plugin vor dem Code geladen werden

Wechseln Sie einfach die Reihenfolge, sodass jQuery.js vor dataTables.js geladen wird 

<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>

Stellen Sie außerdem sicher, dass Sie jQuery nur einmal auf einer Seite verwenden ... nicht einmal pro Plugin, wie es gelegentlich auch der Fall ist

11
charlietfl

Dies liegt daran, dass Sie die jQuery-Bibliothek laden, bevor Sie jQuery selbst laden. jQuery muss vor dem Laden der Bibliothek geladen werden. Sie können dies tun, indem Sie <script> für jQuery vor Ihrer Bibliothek einfügen:

<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>
1