未捕获的引用错误:未定义 jQuery


Uncaught ReferenceError: jQuery is not defined

我仅在超级鱼的chrome下拉菜单中收到此错误。它在Firefox和IE中工作正常。它在Chrome中不起作用。菜单不是水平列表本身垂直。为保密起见,客户实际网站的域名已在下面更改

<script type="text/javascript" src="http://www.domainname.com/js/jquery.js"></script>
<script type="text/javascript" src="http://www.domainname.com/js/superfish.js"></script>
<script type="text/javascript" src="http://www.domainname.com/js/hoverIntent.js"></script>
<script type="text/javascript">
    // initialise plugins
jQuery(function(){
     jQuery('ul.sf-menu').superfish();
    });
</script>

我什至将其更改为以下内容,但不起作用:

    <script type="text/javascript">
         $(document).ready(function(){
            $('ul.sf-menu').superfish();
         })
    </script>

我查看了视图源代码,它引用了两个头文件。这可能会导致错误。我正在使用洋红色。该菜单适用于除一页结帐之外的网站所有页面。

固定的! 阅读下面将在 7 小时内让我发布作为答案

问题不在于javascript本身,而在于超级鱼菜单的css。设计布局和编码模板的开发人员将超级鱼菜单的样式表列为:

    <link rel="stylesheet" type="text/css" href="http://www.domainname.com/css/superfish.css" media="screen">

删除"http://www.domainname.com"并将其保留为"/css/superfish.css"后,它修复了菜单。

尝试使用这样的符号jQuery会导致ReferenceError的唯一原因是:

  1. 如果 jQuery 的脚本包含失败。检查您的主机是否有 404 等。

  2. 如果后面的脚本之一实际上删除了jQuery window属性,例如:

    delete window.jQuery;
    

    仅将jQuery设置为 undefined(也许通过 noConflict (不会导致ReferenceError,您会得到undefined is not a function或类似。但是,如果您实际上删除了该属性,那么您会删除该属性。(IE 除外,它不允许你从window对象中删除属性。