无法使用 require.js 加载 jquery
Unable to load jquery using require.js
只是为了好玩,我想使用 require.js
加载 jquery
。所以,我做了以下内容:
amd.js
define(["jquery-3.3.1"], function($) {
console.log(typeof $); // reports undefined
$("h1").html("Hello from AMD"); // causes TypeError (see below)
});
我的 HTML 文件非常简单,只有一个空白 <h1
> 元素和通常的 require.js
定义。
<script data-main = "amd" src = "require.js"></script>
另外,我的根文件夹,所有东西都在这里,也包含 jquery-3.3.1.js
源文件。
您可能会看到整个示例代码 here on my github repo。忽略所有文件,除了:
- amd.html
- amd.js
- jquery-3.3.1.js
- require.js
但是,当我访问页面时,无论是使用 file:///
协议还是使用网络服务器,模块都没有加载,我看到的是空白页面。
控制台针对console.log
语句报undefined
,在我访问jQuery
object/function的第二条语句报如下异常,是什么从模块返回。
TypeError: $ is not a function
我正在使用 jquery 版本 3.3.1。如果您查看 jquery 的这个(和任何)版本的 the source,众所周知 jquery 是一个函数对象。见下文:
来自 jQuery 来源
define( [
...
], function( ..., ..., ... ) {
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context );
},
return jQuery;
});
您是否在您的 requirejs 配置中输入了 'jquery'?
requirejs.config({
baseUrl: 'js/lib', // path to your source
paths: {
jquery: 'jquery-3.3.1' // invoke
}
});
只是为了好玩,我想使用 require.js
加载 jquery
。所以,我做了以下内容:
amd.js
define(["jquery-3.3.1"], function($) {
console.log(typeof $); // reports undefined
$("h1").html("Hello from AMD"); // causes TypeError (see below)
});
我的 HTML 文件非常简单,只有一个空白 <h1
> 元素和通常的 require.js
定义。
<script data-main = "amd" src = "require.js"></script>
另外,我的根文件夹,所有东西都在这里,也包含 jquery-3.3.1.js
源文件。
您可能会看到整个示例代码 here on my github repo。忽略所有文件,除了:
- amd.html
- amd.js
- jquery-3.3.1.js
- require.js
但是,当我访问页面时,无论是使用 file:///
协议还是使用网络服务器,模块都没有加载,我看到的是空白页面。
控制台针对console.log
语句报undefined
,在我访问jQuery
object/function的第二条语句报如下异常,是什么从模块返回。
TypeError: $ is not a function
我正在使用 jquery 版本 3.3.1。如果您查看 jquery 的这个(和任何)版本的 the source,众所周知 jquery 是一个函数对象。见下文:
来自 jQuery 来源
define( [
...
], function( ..., ..., ... ) {
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context );
},
return jQuery;
});
您是否在您的 requirejs 配置中输入了 'jquery'?
requirejs.config({
baseUrl: 'js/lib', // path to your source
paths: {
jquery: 'jquery-3.3.1' // invoke
}
});