jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 在RequireJS中 – 不能在路径中别名jQuery名称大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是requireJS菜鸟.当我使用“require.config”并包含@L_801_1@名称与jQuery不同的jQuery路径时,结果不符合预期.

这是@L_801_1@非常简单的例子来帮助解释我的问题.

文件结构

root
├── Index.htm
└── scripts
    ├── libs
    │ ├── jquery-1.7.1.js
    │ └── require.js
    ├── main.js
    └── someModule.js

index.htm的

<html>
<head>
    <title>BACkboneJS Modular app with requireJS</title>
    <script data-main="scripts/main" src="scripts/libs/require.js"></script>
</head>
<body>
    <h3>BACkboneJS is awesome</h3>
</body>
</html>

这里脚本标记引用了scripts / libs中的require.当require运行时,应该执行脚本目录中名为main.js的JavaScript文件.

@H_183_2@main.js

require.config({
   "paths": {
           "mod1": "someModule"
   }
});
require(["mod1"],function (sm) {
    console.log(sm@L_509_8@mevalue);
});

根据我的经验,“mod1”可以是任何东西,只要它在require.config路径和require方法中引用相同即可.

someModule.js

define([],function () {
    console.log();
    return { someValue: "abcd" };
});

为了完整起见,我收录了someModule.js

当我包含JQuery时,会出现感觉到的不稳定.

在下面的main.js中,我将jQuery添加到configrequire方法中.

@H_183_2@main.js

require.config({
    "paths": {
        "jquery": "libs/jquery-1.7.1","mod1": "someModule"
    }
});

require(["mod1","jquery"],function (sm,$) {
    console.log(sm@L_509_8@mevalue);
    console.log($);
});

随着jQuery的增加,一切似乎仍然有效. “console.log($)”编写了jQuery函数.

现在是踢球者.在下面的代码中,我在路径和require中将“jquery”更改为“jqueryA”

require.config({
    "paths": {
        "jqueryA": "libs/jquery-1.7.1","jqueryA"],$) {
    console.log(sm@L_509_8@mevalue);
    console.log($);
});

现在“console.log($)”写入null.

这应该是预期的吗?这个名称必须是jquery的原因是什么,但对于mod1,它可以是什么?

我可以毫无问题地解决这个问题,但这个问题看起来很奇怪.我知道我可以使用组合的requireJS和jQuery文件,但是当jQuery有更新时,我不想依赖于requireJS来包含新的jQuery.

解决方法

在jQuery 1.7中,他们决定支持AMD加载.为此,它定义了@L_801_1@名为“jquery”的模块,该模块将对jQuery对象的引用传回.当你用另@L_801_1@名字(例如’jqueryA’)定义你的jquery路径时,事情并没有像你想象的那样完全破坏.

jquery脚本始终将自己定义为名为“jquery”的模块,该模块已在app中注册require.当您命名路径快捷方式’jquery’并且’jquery’作为依赖项加载时,require实际上引用了由jquery-1.7.1.js定义的’jquery’模块,该模块确实传回了正确的引用.当您命名模块快捷方式jqueryA时,您现在引用了未定义的引用,因为除了通过名为“jquery”的模块之外,jquery脚本本身不会传回引用.我知道,这很愚蠢.

jquery脚本将模块定义为’jquery’,并期望您只需将其引用为’jquery’.如果您想将其作为另@L_801_1@名称引用(并且作为奖励,使其不与其他加载的jquery库冲突),请使用以下方法

Use requirejs and jquery,without clobbering global jquery?

大佬总结

以上是大佬教程为你收集整理的javascript – 在RequireJS中 – 不能在路径中别名jQuery名称全部内容,希望文章能够帮你解决javascript – 在RequireJS中 – 不能在路径中别名jQuery名称所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。