Как использовать 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 для сборки именно того подмножества, которое мне было нужно.