Require.js Uncaught TypeError:undefined不是函数

时间:2013-04-12 12:25:28

标签: javascript jquery requirejs

我刚开始学习Require.js

文件系统就像:

enter image description here

这是我的 index.html

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>

    <script type="text/javascript" src="lib/require/require.min.js" data-main="lib/main"></script>

</head>
<body>
    <span id="content"></span>
</body>
</html>

现在,我知道加载到DOM的第一个文件是require.js然后加载 lib / main.js

现在 main.js

require(['jquery'],function($){
     //this works since both **main.js** and **jquery.js** are in same folder
     $("#content").html("jquery am  loaded");
});

enter image description here 现在问题是如果我将 jquery.js 保存在与main.js相同的文件夹中,代码工作正常,但如果我将路径更改为jquery / jquery.js并更改主要内容。 js as

require(['jquery/jquery'],function($){
     //this thing shows 'Uncaught TypeError: undefined is not a function'
     $("#content").html("jquery am  loaded");
});

我明白问题是它没有加载 jquery.js ,如果它在 main.js 之外的任何其他文件夹中是的,但为什么,请阐明一些可以实现的目标。

1 个答案:

答案 0 :(得分:7)

要使用RequireJS和jQuery,您应该使用组合的RequireJS / jQuery文件,该文件位于:

http://requirejs.org/docs/jquery.html

或使用path

http://requirejs.org/docs/api.html#config-paths

require.config({
    paths: {
        "jquery": 'http://code.jquery.com/jquery-1.9.1'
    }
});

require(["jquery"], function ($) {
    console.log($.fn.jquery);
});