从CDN获取jQuery?

wil*_*age 37 javascript jquery cdn requirejs

我使用require JS并想知道使用CDN版本的jQuery的最佳方法.我听说1.7版本是"AMD",应该有所帮助,但找不到直接的例子.希望一些RequireJS大师可以帮助我.

jrb*_*rke 46

jQuery 1.7将自己注册为名为"jquery"的AMD模块,因此您需要使用路径配置为'jquery'创建映射:

requirejs.config({
  paths: {
    'jquery' : 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
  }
});

require(['jquery'], function($) {
  //$ points to jQuery
});
Run Code Online (Sandbox Code Playgroud)

但请注意,RequireJS异步加载模块并且乱序,所以如果你想要使用的jQuery插件没有包含在define(['jquery'], function ($){ /* plugin code goes here */ });调用中,那么插件可以在加载jQuery之前执行.

请参阅require-jquery项目的自述文件,了解如何处理依赖于jQuery的文件,但不要将自己包装在define()调用中.

  • @pagewil我从下划线的路径映射中删除了".js".模块通常不使用文件扩展名.这似乎是罪魁祸首:http://jsfiddle.net/unscriptable/sCFwE/44/ (6认同)
  • @unscriptable你血腥传说你! (2认同)

mur*_*yju 9

@ jrburke的回答对我不起作用.根据RequireJS api doc,您不应在路径中包含文件扩展名.所以这是工作代码:

requirejs.config({
    paths: {
        'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min'
    }
});

require(['jquery'], function($) {
    //$ points to jQuery
});
Run Code Online (Sandbox Code Playgroud)

我在jsfiddle上有一个工作示例:http: //jsfiddle.net/murrayju/FdKTn/

  • @ZachL,你看看我的jsfiddle了吗?只需添加`.js`,您就会发现它不起作用.在某些版本的requirejs中,这可能会发生变化,因为文档与何时删除`.js`不一致. (2认同)
  • @murrayju是的.你做对了.看看@jrburke的帖子的编辑,他也是如此,但有人(错误地)编辑了`.js`.现在编辑它... (2认同)