TypeError: $(...).carousel 不是函数

Posted

技术标签:

【中文标题】TypeError: $(...).carousel 不是函数【英文标题】:TypeError: $(...).carousel is not a function 【发布时间】:2015-08-30 19:57:36 【问题描述】:

我知道很多问题都提出了这个问题,但是最常见的 jQuery 未加载的答案对我不起作用。看来我的 jQuery 正在正确加载(版本 1.10.2)。 我正在尝试运行以下代码(即使在控制台中也尝试过,因此不会存在加载问题): $('.carousel').on('mouseenter',function() $( this ).carousel();)

引导轮播本身运行良好。只是当我试图动态初始化它时,它不起作用。 (我刚开始使用角度和引导程序,所以我可能在这里遗漏了一些非常简单的东西。) 我正在为我的应用程序使用 angular js 和 bootstrap。

编辑: 这是我的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"  class="img-responsive product-image"/>
                    </div>
                    <div class="item">
                        <img src="item.nutrition_thumbnail"  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>

角度代码:

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


);

我使用 bower 来处理依赖关系。


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

【问题讨论】:

在这里看到你的 JS 代码会有很大帮助。 如果没有加载 jQuery,那么会在 $ 上抛出一个引用错误。它说carousel 不是一个函数。你在哪里定义carousel 您的浏览器控制台中有什么,有什么错误吗?你在加载 Bootstrap js 文件之前加载了 jQuery 吗? .carousel 不是函数!使用$(this).slick();slick 分享angularjs代码 【参考方案1】:

我有同样的问题,我缺少的是在我的index.html 中包含bootstrap.js,并且在添加之后它起作用了。

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

【讨论】:

【参考方案2】:

您只需将您的脚本设置在 html 正文的底部。

<html>
   <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <!--JQUERY-->
      <script     src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
      <!--Boostrap carousel-->
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
   </head>
   <body>
   <!--YOUR CAROUSEL BODY HERE-->
   <h1>Look on the code example</h1>
   </body>
   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
   <script>
      $(document).ready(function() 
         $('.carousel').carousel(
            interval: 550 * 10
         );
      );
   </script>
</html>

【讨论】:

【参考方案3】:

尝试更改具有 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>

而不是相反。

【讨论】:

怎么改?以前是什么样子的,现在又是什么样子的?请edit您的回答以添加更多详细信息。 尝试在源代码&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"&gt;&lt;/script&gt; &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"&gt;&lt;/script&gt;中保持这个脚本顺序 而不是相反!

以上是关于TypeError: $(...).carousel 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Vue组件呈现为评论?

第四天 轮播图

详解bootstrap轮播(Carousel)插件

带有项目数量的垂直引导轮播

DevExpress Carousel 设置水平滑动列表

Ext.require 的目的是啥