相关疑难解决方法(0)

使用requirejs和jquery,而不是破坏全局jquery?

我第一次在项目中使用requirejs.我正在一个已经有很多Javascript的环境中工作,我正在寻找干净的方法来介绍我自己的代码.

我遇到的问题是我似乎无法找到一个我可以加载的jQuery模块,它不会破坏现有的jQuery.

我很惊讶即使require-jquery.js引入了jQuery的全局版本.有没有办法加载jQuery作为模块而不引入任何全局变量?

jquery module requirejs

21
推荐指数
1
解决办法
9933
查看次数

RequireJS:为什么相对路径适用于define(),但不适用于require()?

假设您有以下目录结构,以及以下文件:

root
|-- require-jquery.js
+-- folder
     |-- index.html
     |-- main.js
     +-- AnotherModule.js
Run Code Online (Sandbox Code Playgroud)

在RequireJS中,当您引用以"."开头的模块时,RequireJS会查找当前模块所在的文件夹,即使这是一个子目录.但是,如果在调用define()之前更改baseUrl,则RequireJS会将依赖项映射到新的baseUrl.

您可以通过在index.html中设置baseUrl并将data-main更改为相对于baseUrl的路径来解决此问题:

文件夹/ index.html的:

<script>
    var require = {
        baseUrl : "../"
    };
</script>
<script data-main="folder/main" src="../require-jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

文件夹/ main.js:

define(
        [ "jquery", './AnotherModule' ],
        function($, AnotherModule) {});
Run Code Online (Sandbox Code Playgroud)

这仅适用于define():

文件夹/ main.js:

require(
        [ "jquery", './AnotherModule' ],
        function($, AnotherModule) {});
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用require(),RequireJS将在root中查找AnotherModule.js,而不是文件夹.为什么会这样,特别是为什么define()和require()之间的设计差异?

requirejs

4
推荐指数
1
解决办法
5958
查看次数

如何让jquery-mobile和dependend插件与require.js一起使用?

我正在第一次尝试实现Require.js,虽然我正在尝试遵循这两个教程(这里这里),但我并没有完全理解它.这是我到目前为止:

在我的索引文件中:

<script type="text/javascript" data-main="../js/main" src="../js/libs/require/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

main.js里面

require.config({ baseUrl: "../js/",
  paths: {       
   "jq-loader":    "libs/jquery/jquery",
   "jqm-loader":   "libs/jquery-mobile/jquery-mobile",
   "someplug":     "libs/someplug/somplug",
   }
 });
// define app and dependencies??? - not sure what goes here? All plugins I'm using?
require(['app','order!libs/jquery/jquery', 'order!libs/jquery-mobile/jquery-mobile'], 

function(App){
    App.start();
    });
Run Code Online (Sandbox Code Playgroud)

jquery.js里面

 define([ 'order!libs/jquery/jquery.min' ], function(){ return $; });
Run Code Online (Sandbox Code Playgroud)

jquery.js里面(取决于Jquery)

 // ERROR here in "mobile" being undefined
 define(['order!libs/jquery-mobile/jquery-mobile.min'], function(){ return mobile; });
Run Code Online (Sandbox Code Playgroud)

app.js

define([ 'jq-loader', 'jqm-loader'], function($, mobile){ …
Run Code Online (Sandbox Code Playgroud)

jquery asynchronous jquery-mobile requirejs

2
推荐指数
1
解决办法
1767
查看次数

标签 统计

requirejs ×3

jquery ×2

asynchronous ×1

jquery-mobile ×1

module ×1