提问者:小点点

jQuery未捕获引用的问题


这是我的网站,如果我在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 

我知道这是一个老错误,我已经看到了一些关于这方面的问题,但没有一个对我有帮助

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


共3个答案

匿名用户

您已经将async属性设置为jQuery包含脚本,如

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

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

匿名用户

不带async

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

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

匿名用户

嗨,我也有同样的问题。我也有办法解决这个问题。你只要看看我的代码。如果它在您的项目中执行相同的操作,请更正它。

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

上述代码在第一次单击按钮时工作正常。但在第二次点击时,我发现了和你一样的错误。现在我将“retcond()”函数改为,

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

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