已加载jquery时如何从requirejs初始化jui ui?

问题描述

我试图在一个共享项目中使用jquery ui,由于jquery已经加载,当我需要jquery ui的手风琴时,我看不出再次要求它的原因。

我已经按照所有步骤进行操作,并添加了与require js一起使用的文件夹。如: https://learn.jquery.com/jquery-ui/environments/amd/

但我仍然遇到相同的错误

Script error for "jquery",needed by: jqueryui/widgets/accordion,jqueryui/version,jqueryui/keycode,jqueryui/unique-id,jqueryui/widget

这是我的代码

  function main() {
    require({
      paths: {
        jqueryui: '/teams/sp-test-site/dist/jQuery/ui/1.12.1',},shim: {
        deps: [ 'jquery',],[ 'jqueryui/widgets/accordion',function (accordion) {
      $('#accordion').accordion();
    });
  }

  ExecuteOrDelayUntilScriptLoaded(function () {
    SP.soD.executeFunc('require.js',null,main);
  },'core.js');

所以我假设我缺少一些初始化函数来使用已经从全局变量中加载的jquery,我只是不确定如何,如果是这样的话。有谁知道这里可能出什么问题了吗?

解决方法

定义jquery并返回已解决的全局查询。

define('jquery',[],function () {
          return window.jQuery;
        });