4

我刚开始学习Require.js

文件系统是这样的:

在此处输入图像描述

这是我的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");
});

在此处输入图像描述 如果我将jquery.js保存在与 main.js 相同的文件夹中,那么问题就来了,代码可以正常工作,但是如果我将路径更改为 jquery/jquery.js 并将 main.js 更改为

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

我理解问题在于,如果jquery.js位于除 main.js 之外的任何其他文件夹中,则它不会加载它,但是为什么,请说明一下以及如何实现。

4

1 回答 1

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);
});
于 2013-04-12T12:57:17.210 回答