如何使用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我需要的子集。