JavaScript运行时错误:'$'未定义

时间:2013-02-20 02:38:33

标签: javascript jquery html5 canvas

如此经典的问题,但在找到实际原因时遇到了可怕的时间。通常当我看到这个错误时,因为jQuery引用是在代码需要它之后,或者回到jQuery链接,或jQuery冲突等...到目前为止,似乎没有一个是这种情况。不幸的是,寻找这个问题的解决方案导致我发布此类案件后发布。我相信我的问题同样简单,但是一个多小时的狩猎,仍然没有运气......

编辑:其他信息...... 解决方案文件(我已经多次重新创建,试图解决这个问题。是一个JavaScript Windows Store空白应用程序模板,我在Visual Studio中这样做。唯一的参考文件是Windows库的javascript 1.0,我试过删除这也是为了测试。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Canvas Template</title>
        <style>
            /* styles here */
        </style>
    </head>
    <body>
        <canvas id="myCanvas" width="500" height="500">
            <p>Canvas not supported.</p>
        </canvas>

        <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                var canvas = $("#myCanvas").get(0);
                var context = canvas.getContext("2d");

                function renderContent()
                {
                    // we'll do our drawing here...
                }

                renderContent();
            });
        </script>
</body>
</html>

6 个答案:

答案 0 :(得分:12)

指出 JQuery 引用的网址不正确

试试这个:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

答案 1 :(得分:2)

我尝试了上面列出的所有内容,在我输入此字符串

之前似乎没有任何效果
<script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>

在HTML文件的head部分。所以这是它的外观:

<!DOCTYPE html>
<html>
<head>

    <!-- jQuery Reference -->
    <script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>

    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />


    <title>some title</title>

</head>
<body>
...

js文件位于文件夹'scripts'中的下一级。 最后,错误消失了,真是一种解脱!

答案 2 :(得分:1)

在我的情况下,问题是我通过https呈现我的页面,但我试图通过http请求JQuery文件,出于安全原因,该文件被许多浏览器阻止。

我的解决方法是改变这个......

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

......对此...

<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>

这会导致浏览器使用与正在呈现的页面相同的协议(http或https)下载JQuery。

答案 3 :(得分:1)

我的一些客户遇到了这个问题,因为显然他们阻止从第三方网站加载Javascript。所以现在我总是使用以下代码来包含jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
window.jQuery || 
document.write('<script type="text/javascript" src="/js/jquery-1.9.1.min.js">\x3C/script>')
</script>

这确保即使我的客户端阻止从CDN域加载Javascript文件,客户端仍会从我自己的服务器下载该文件,该文件未被浏览器阻止。

答案 4 :(得分:0)

Anover变种,在我的情况下 - 我被迫使用代理。所以 - IE11 - &gt; InternetOptions - &gt;连接 - &gt; LAN设置 - 代理服务器 - &gt;应检查UseProxyServer 。  同时检查jQUery脚本源的可用性,我在VS2012中的工作变体 - 就像在顶级示例中一样

答案 5 :(得分:-1)

我收到了同样的错误代码:

  

(错误:'generateText'未定义)

...代码

var bodyText=["The....now."]

我在文本编辑器(Notepad ++)上发现,在变量bodyText的正上方输入多行文本时,如果我没有点击return carriage(输入==&gt; WordWrap)是关闭)只是保持键入w {o return carriage并让编辑器调整它工作的文本?

必须在Notepad ++ ??

的设置中