如何使用jquery ui与requirejs

我想在我的应用程序中使用jQuery UI的addClass函数。

除了我正在使用正常的jQuery,下划线,骨干都与requirejs分层。

我已经这样configurationjQuery UI:

 require.config({ deps: ["main"], paths: { "text": "lib/text" , "jquery": "lib/jquery" , "jquery-ui": "lib/jquery-ui" , "underscore": "lib/underscore" , "backbone": "lib/backbone" , "bootstrap": "lib/bootstrap" , "templates": "../templates" }, shim: { "jquery-ui": { exports: "$", deps: ['jquery'] }, "underscore": { exports: "_" }, "backbone": { exports: "Backbone", deps: ["underscore", "jquery"] }, "bootstrap": ['jquery'] } }); 

在我的应用程序中:

 define(['jquery', 'underscore', 'backbone'], function($, _, Backbone) { $('div').addClass('white'); }); 

不幸的是,这只是普通的addClass而不是jQuery UI的animation效果。

PS:我使用完整的jQuery版本。

你需要包含jquery-ui:

 define(['jquery-ui', 'backbone'], function() { $('div').addClass('white'); }); 

jquery应该是自动的,因为它是jquery-ui的依赖

另外,这些脚本都没有返回任何东西,但是它们的variables被分配给窗口对象。 不需要分配它们。

尝试

 define(['jquery', 'jquery-ui', 'underscore', 'backbone'], function($, ui, _, Backbone) { // $.ui should be defined, but do // $.ui = ui if its not $('div').addClass('white'); }); 

有时你只需要一小段jQuery UI。 例如,我最近需要sorting,但如果我试图加载整个事情,然后我得到了$.button()之间的jquery-ui和$.button() bootstrap之间的冲突。 jQuery UI现在支持AMD,所以我使用RequireJS的构build工具r.js来构build我需要的子集。