DataTables: Uncaught TypeError: Невозможно прочитать свойства "defaults" из undefined
При использовании интеграции Bootstrap для DataTables я вижу следующую ошибку в консоли:
Uncaught TypeError: Cannot read property 'defaults' of undefined (dataTables.bootstrap.js:20)
Это приводит к тому, что элементы управления pagination не имеют на них стилей.
Я вижу, что в инициализации factory необходимо выполнить следующий код:
factory( jQuery, jQuery.fn.dataTable );
Однако jQuery.fn.dataTable
возвращает undefined
.
Ответы
Ответ 1
Проблема заключается в том, что dataTable
не определен в точке, которую вы вызываете этот метод.
Убедитесь, что вы загружаете файлы .js
в правильном порядке:
<script src="/Scripts/jquery.dataTables.js"></script>
<script src="/Scripts/dataTables.bootstrap.js"></script>
Ответ 2
У меня такая же ошибка, я использую laravel 5.4 с webpack, здесь package.json before:
{
...
...
"devDependencies": {
"jquery": "^1.12.4",
...
...
},
"dependencies": {
"datatables.net": "^2.1.1",
...
...
}
}
Мне пришлось перемещать пакеты jquery
и datatables.net
npm под одним из этих "dependencies": {}
или "devDependencies": {}
в package.json
, и ошибка исчезла после:
{
...
...
"devDependencies": {
"jquery": "^1.12.4",
"datatables.net": "^2.1.1",
...
...
}
}
Я надеюсь, что это поможет!