未捕获的类型错误:对象 [object Object] 没有方法“Jcrop”

Posted

技术标签:

【中文标题】未捕获的类型错误:对象 [object Object] 没有方法“Jcrop”【英文标题】:Uncaught TypeError: Object [object Object] has no method 'Jcrop' 【发布时间】:2013-01-03 02:11:21 【问题描述】:

似乎所有内容都已加载(jquery、jcrop 和我的 avatar.js 文件)。我似乎无法弄清楚发生了什么。我的脚本按以下顺序加载:

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.Jcrop.js?body=1" type="text/javascript"></script>
<script src="/assets/gmaps4rails/gmaps4rails.base.js?body=1" type="text/javascript"></script>
<script src="/assets/gmaps4rails/gmaps4rails.googlemaps.js?body=1" type="text/javascript"></script>
<script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1" type="text/javascript">         </script>
<script src="/assets/jquery-fileupload/jquery.iframe-transport.js?body=1" type="text/javascript">    </script>
<script src="/assets/jquery-fileupload/jquery.fileupload.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/basic.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-fileupload/vendor/tmpl.js?body=1" type="text/javascript"></script>
<script src="/assets/avatars.js?body=1" type="text/javascript"></script>

avatars.js.coffee 包含以下内容:

jQuery ->
  new AvatarCropper()

class AvatarCropper
  constructor: ->
    $('#cropbox').Jcrop
      aspectRatio: 1
      setSelect: [0, 0, 600, 600]
      onSelect: @update
      onChange: @update

  update: (coords) =>
      $('#avatar_crop_x').val(coords.x)
      $('#avatar_crop_y').val(coords.y)
      $('#avatar_crop_w').val(coords.w)
      $('#avatar_crop_h').val(coords.h)
      @updatePreview(coords)

    updatePreview: (coords) =>
      $('#preview').css
        width: Math.round(100/coords.w * $('#cropbox').width()) + 'px'
        height: Math.round(100/coords.h * $('#cropbox').height()) + 'px'  
        marginLeft: '-' + Math.round(100/coords.w * coords.x) + 'px'
        marginTop: '-' + Math.round(100/coords.h * coords.y) + 'px'

在我得到的 javascript 控制台中:

Uncaught TypeError: Object [object Object] has no method 'Jcrop' 

任何帮助将不胜感激。

【问题讨论】:

由于某种原因,一个对象,可能是一个 jQuery 对象,正在被toString()'d。 检查浏览器控制台网络选项卡...插件文件是否真的被加载到浏览器中? 知道我应该去哪里看吗?我快把头发扯掉了。 当我刷新页面时,我看到了网络选项卡中的所有脚本 文件本身可能有错误?...导致错误并且 jCrop 方法无法注册。 【参考方案1】:

问题是 jQuery.noConflict();调用另一个脚本...

【讨论】:

我也想把头发扯掉 :) 感谢您的解决方案【参考方案2】:

我遇到了同样的问题。当我将我的 jquery 文件放在 jcrop.js 之前时,我的问题得到了解决。

【讨论】:

以上是关于未捕获的类型错误:对象 [object Object] 没有方法“Jcrop”的主要内容,如果未能解决你的问题,请参考以下文章

vuejs 3:未捕获的类型错误:对象(...)不是函数[重复]

未捕获的类型错误:对象 [对象对象] 没有方法“弹出”

为啥dojo会发出这个错误?未捕获的类型错误:对象 [对象对象] 没有方法“查询”

未捕获的错误:不变违规:元素类型无效:对象

React 备忘录功能给出:- 未捕获的错误:元素类型无效:预期为字符串但得到:对象

未捕获的错误:元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象