【问题标题】:Issue with jQuery uncaught referencejQuery未捕获参考的问题
【发布时间】:2014-06-25 18:40:11
【问题描述】:

这是我的网站 如果我有时在 Chrome 中打开它,我在悬停时看不到菜单功能。 在控制台中我得到了这个

Uncaught ReferenceError: jQuery is not defined /catalog/view/javascript/journal/pnotify/jquery.pnotify.min.js:1
Uncaught ReferenceError: jQuery is not defined /catalog/view/javascript/journal/cookie.js:1
Uncaught ReferenceError: jQuery is not defined /catalog/view/javascript/jquery/colorbox/jquery.colorbox.js:82
Uncaught ReferenceError: $ is not defined /catalog/view/javascript/jquery/tabs.js:1
Uncaught TypeError: undefined is not a function 

我知道这是一个老错误,我已经看到了几个关于 SO 的问题, 但他们都没有帮助我

如果你在 Firefox 中打开同一个站点,它会警告你一些无响应的 JavaScript,一旦你点击 OK 它就可以正常工作,我不确定这背后的问题是什么,如果是 jQuery 问题,那就是很难进入每个文件并对其进行调试, 谁能通过查看控制台日志来帮助我?

【问题讨论】:

  • 尝试将您的自定义代码包装在 jQuery api.jquery.com/readyready 函数中
  • @RobSchmuecker 好吧,我猜它不是自定义代码,而是一些开发人员已经创建了 js 文件
  • @Anonymous 在我的问题中我明确提到我已经看到关于 SO 的问题,类似于它
  • @user1765876 无论哪种方式,它都是重复的。另一种选择是将其作为印刷错误导致,它可能是。但是,主要的一点是它是完全相同的错误。了解为什么会发生错误可以让您找到解决方案。

标签: javascript php jquery html typeerror


【解决方案1】:

您已将 async 属性设置为 jQuery include script like <script async src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"></script> 删除它。

<script src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"></script>

在正常情况下,脚本按照包含它们的顺序执行。但是由于您使用了async 标志,核心jQuery 库的执行将是异步的。所以它有可能会在需要 jQuery 库的其余脚本文件之后执行。

【讨论】:

  • 在哪个文件中?你在说什么
  • @user1765876 在您文件的视图源中
  • 请编辑您的评论以不包括网站名称,谢谢,
  • 有效,但还有一些其他文件也有异步..jquery-ui-1.8.16.custom.min.js,所以异步有用吗?
  • 我不认为在你的情况下你应该使用它......因为当 dom 准备好触发时,异步文件可能不会被加载......(不确定 - 需要确认)
【解决方案2】:

在没有async的情况下移动这一行

<script src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"></script>

到您的 javascript 包含文件的顶部
并确保 jquery 和其他库之间没有冲突

【讨论】:

    【解决方案3】:

    您好,我也遇到了同样的问题。我也以我的方式得到了解决方案。你只要看看我的代码。如果它在您的项目中做同样的事情,请纠正它。

    function fill_grid()
    {
     //some of my work
     var para=new Array();
     para[0]="id";
     para[1]=retcond("");
    }
    function retcond(posid)
    {
    //
    var cond="where pfid="'19282'";
    retcond=cond;
    return retcond;
    }
    

    上面的代码在第一次 button_click 时运行良好。但在第二次点击时给了我同样的错误。现在我把“retcond()”函数改成了,

    function retcond(posid)
    {
    //
    return cond;  
    }
    

    由于我没有声明变量名,这让我很困扰。现在它解决了。希望这可以给你任何想法。

    【讨论】:

      猜你喜欢
      • 2016-06-03
      • 2015-02-18
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 2016-10-03
      相关资源
      最近更新 更多