Как использовать jquery ui с requirejs
Я хочу использовать функцию 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.
Ответы
Ответ 1
Вам нужно включить jquery-ui:
define(['jquery-ui', 'backbone'], function() {
$('div').addClass('white');
});
jquery должен быть необходимо автоматически, поскольку это зависимость jquery-ui
Кроме того, ни один из этих сценариев ничего не возвращает, но их переменные назначаются объекту window. Нет необходимости назначать их.
Ответ 2
попробовать
define(['jquery', 'jquery-ui', 'underscore', 'backbone'], function($, ui, _, Backbone) {
// $.ui should be defined, but do
// $.ui = ui if its not
$('div').addClass('white');
});
Ответ 3
Иногда вам нужен только небольшой подраздел jQuery UI. Например, мне недавно нужна сортировка, но если бы я попытался загрузить все это, тогда у меня возник конфликт между $.button()
на jquery-ui и $.button()
в bootstrap. jQuery UI теперь поставляется с поддержкой AMD, поэтому я использовал инструмент сборки requireJS r.js для сборки именно того подмножества, которое мне было нужно.