需要加载插件

Fli*_*lam 13 jquery requirejs

我正在尝试使用requirejs加载一个插件,但偶尔会出现错误,"$ .fn未定义"但如果我重新加载页面错误消失几乎就像现在jquery被缓存一样,问题就被删除了.我正在加载我的库这样:

require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
   $(function() {
       //code
    });
});
Run Code Online (Sandbox Code Playgroud)

你能看出这个实现是否有什么问题会导致这个错误吗?需要将js添加到页面中,如下所示:

<script type="text/javascript" src="http://website.co.uk/frameworks/requirejs/0.2.4/sharedmodules/require.js">
</script> 
<script type="text/javascript">  requireMap = {
     "jquery-1.4":"http://website.co.uk/sharedmodules/jquery-1.4"
}; 

    require({ baseUrl: 'http://website.co.uk/', paths: requireMap });      
</script>
Run Code Online (Sandbox Code Playgroud)

这不能改变,因为它是我正在使用的框架的一部分.

有什么建议?

谢谢!

Kon*_*aju 12

订单插件已删除.使用垫片加载如下

requirejs.config({
   paths: {
        'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
        'bootstrap': '../bootstrap/js/bootstrap.min',
        'select2': 'vendor/select2',
        'jshashtable': 'vendor/jshashtable-2.1',
        'jquery.numberformatter': 'vendor/jquery.numberformatter-1.2.3.min',
        'jq-datepicker': 'vendor/bootstrap-datepicker',
        'jq-datepicker.da': 'vendor/bootstrap-datepicker.da'
    }, 

    // Use shim for plugins that does not support AMD
    shim: {
        'bootstrap': ['jquery'],
        'select2': ['jquery'],
        'jq-datepicker': ['jquery'],
        'jshashtable': ['jquery'],
        'jquery.numberformatter': ['jquery', 'jshashtable']
    },

});
Run Code Online (Sandbox Code Playgroud)

参考:http://requirejs.org/docs/api.html#config-shim


jrb*_*rke 8

您将需要使用订单插件.默认情况下,RequireJS尽可能快地加载脚本,并且它们可以无序加载.但是,订单插件将保持脚本加载的顺序.

如果使用优化器优化脚本,请确保在优化脚本中包含jQuery和插件.

  • 对于那些发现这个通过的人来说,订单插件不是为RequireJS 2.0提供的,所以@jrburke上面的链接无济于事.您仍然可以使用[1.0 API与订单插件](http://requirejs.org/docs/1.0/docs/api.html#order),但更好的解决方案是使用[2.0与垫片配置]( http://requirejs.org/docs/api.html#config-shim). (8认同)
  • @Stann是的,仍然适用于jQuery 1.7.虽然jQuery 1.7注册为AMD模块,但jQuery插件可能不会将其代码包装在define()包装器中,要求将"jquery"作为依赖项.所以问题实际上是jQuery插件 - 如果它在加载jQuery之前加载会出现问题,除非插件在AMD define()调用中自行封装. (2认同)