アプリケーションでjQuery UIのaddClass
関数を使用したい。
私は通常、jQuery、アンダースコア、バックボーンをすべてrequirejsと一緒に使用しています。
次のようにjQuery 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からのアニメーションは行いません。
PS:私は完全なjQueryエディションを使用しています。
Jquery-uiを含める必要があります。
define(['jquery-ui', 'backbone'], function() {
$('div').addClass('white');
});
jqueryはjquery-uiの依存関係であるため、自動的に必要になります。
さらに、これらのスクリプトはいずれも何も返しませんが、それらの変数はウィンドウオブジェクトに割り当てられます。それらを割り当てる必要はありません。
試してみる
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の小さなサブセクションのみが必要な場合があります。たとえば、最近ソート可能が必要でしたが、すべてをロードしようとすると、jquery-uiの$.button()
とブートストラップの$.button()
の間に競合が発生しました。 jQuery UIにはAMDがサポートされるようになったため、RequireJSのビルドツールr.jsを使用して、必要なサブセットを正確にビルドしました。