Ошибка типа: $ (…) .carousel не является функцией

3

Я знаю, что это было задано по многим вопросам, но самый общий ответ, что jQuery не загружен, не работает для меня. Кажется, что мой jQuery загружается должным образом (версия 1.10.2). Я пытаюсь запустить следующий код (попробовал даже в консоли, поэтому проблема загрузки не сохранилась): $('.carousel').on('mouseenter',function(){ $( this ).carousel();})код >

Бутстрап-карусель сам по себе работает нормально. Это просто, когда я пытаюсь инициализировать его динамически, он не работает. (Я только начал с angular и bootstrap, поэтому я мог бы пропустить что-то очень простое здесь.) Я использую angular js и bootstrap для своего приложения.

EDIT: Вот мой html-код:

<div class="row" ng-controller="ItemGallery" style="padding-top:30px;">
    <div class="col-md-4 item_card" ng-repeat="item in item_array">
        <a href="{{'/product/id='+item.product_id}}" class="thumbnail">
            <div id="{{'carousel_'+item.product_id}}" class="carousel slide" data-ride="carousel" data-interval="false">
                <div class="carousel-inner" role="listbox">
                    <div class="item active">
                        <img src="{{item.thumbnail}}" alt="{{item.product_title}}" class="img-responsive product-image"/>
                    </div>
                    <div class="item">
                        <img src="{{item.nutrition_thumbnail}}" alt="{{item.product_title}}" class="img-responsive nutri-image"/>
                    </div>

                </div>
            </div>
            <div class="caption post-content">
                <h4 class="h_no_margin">
                    <p class="pull-left title">{{item.product_title.toLowerCase() }}</p>
                    <p class="text-right">${{item.price}}</p>
                </h4>
                <small>
                    {{item.product_desc}}
                </small>
            </div>
        </a>

    </div>

</div>

Angular код:

var app = angular.module('item_gallery', []);

app.controller('ItemGallery', function($http, $scope, $location) {
$http.get("/product/list")
.success(function(response) {
    $scope.item_array = response.response;
    });


});

Я использовал беседу, чтобы заботиться о зависимостях.

{
 "name": "nutrinext",
 "version": "0.0.0",
 "dependencies": {
  "angular": "~1.3.1",
  "angular-bootstrap": "~0.11.2",
  "angular-timeago": "~0.1.3",
  "angular-ui-router": "~0.2.11",
  "ngstorage": "~0.3.0",
  "bootstrap": "~3.3.0",
  "bootstrap-markdown": "~2.7.0",
  "jquery": "1.10.2",
  "fastclick": "~1.0.3",
  "fontawesome": "~4.2.0",
  "pubnub": "~3.6.4"
 },
"devDependencies": {},
"resolutions": {
  "angular": "~1.3.1",
  "bootstrap": "~3.3.0"
 }
}
  • 0
    Просмотр вашего кода JS здесь очень поможет.
  • 1
    Если бы jQuery не был загружен, то это вызвало бы ошибку ссылки на $ . Это говорит о том, что carousel не является функцией. Где вы определили carousel ?
Показать ещё 7 комментариев

3 ответа

8

У меня была одна и та же проблема. В моем index.html я отсутствовал, включая bootstrap.js, и после добавления после нее работал.

<script type="text/javascript" src="components/bootstrap/dist/js/bootstrap.js"></script>
-1

Попробуйте изменить порядок тегов с материалом materialize.js, это сработало для меня!

В частности, вы должны сохранить этот порядок скриптов в исходном коде:

<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>

а не наоборот.

  • 0
    Менять это как? Как это выглядело раньше, и как оно выглядит сейчас? Пожалуйста, отредактируйте свой ответ, чтобы добавить больше деталей.
  • 0
    Попробуйте сохранить этот порядок сценариев в исходном коде <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
Показать ещё 1 комментарий
-2

Просто разобрался сам.

Шаг 1-) Найдите весь проект (ctrl + shift + f) и введите carousel()

Шаг 2-) Заменить все с каруселью

Надеюсь это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню