2015-07-26 4 views
5

Я пытаюсь использовать таблицы данных плагина jquery, но я не могу загрузить функцию. Я получаю эту ошибку:

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 

Ниже мой JS код:

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

Я использую JQuery В. 1.11.1 Я попытался посмотреть вокруг решения, и видел, как люди говорят о Jquery не загружается. Я успешно запускаю другие функции jQuery на одной странице. Это также единственная функция .ready на этой странице. Мы можем сказать, что jQuery присутствует, так как когда документ готов, он выполняет эту функцию. Я также попытался поместить импорт js и css-файла в несколько мест, как это было предложено, но не работал. Кто-нибудь знает, как это исправить?

правок:

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

ответ

9

Заказ скриптов важно, когда они зависят от библиотек или других сценариев.

Любой jQuery-код, который должен быть включен после jQuery.js ..., означает плагины и любой код, который вы пишете, который использует jQuery. Точно так же любой код, который вы пишете, что использует плагин должен быть плагин загружен перед кодом

Просто переключите заказ так jquery.js нагрузки до 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> 

Также убедитесь, что вы только когда-либо включить JQuery раз на странице ... не один раз в плагин, как иногда бывает

+0

Спасибо за ответ. Я изменил порядок, но он все еще, похоже, дает ту же ошибку. :(Я только добавил jQuery в один раз – SML

+2

посмотри в браузер dev tools (F12) tab tab..make sure file is loading Должен иметь статус 200 – charlietfl

+1

Обнаружил ошибку: У меня было несколько ссылок на jQuery !!! Спасибо !!! : D – SML

1

Это потому, что вы загружаете библиотеку JQuery перед загрузкой самого JQuery. JQuery должен быть загружен, прежде чем загрузить библиотеку, вы можете сделать это, в том числе <script> для JQuery перед вашей библиотеке:

<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

Спасибо за ответ. Я изменил порядок, но он все еще, похоже, дает ту же ошибку. :( – SML

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