Javascript 将requirejs与Colorbox一起使用:uncaughttypeerror

Javascript 将requirejs与Colorbox一起使用:uncaughttypeerror,javascript,jquery,requirejs,colorbox,Javascript,Jquery,Requirejs,Colorbox,所以,点击一个按钮后,我想显示一个包含youtube链接的灯箱 我在我的项目中使用了requirejs和lightbox,但出现了一个错误: “未捕获的TypeError:对象函数(e,t){return new x.fn.init(e,t,r)}没有方法'colorbox'” 我想这个函数找不到Colorbox,但我不知道为什么 这是我的文件:openYoutubeLink: define( [ 'modules/common/preferences' ], function ( prefer

所以,点击一个按钮后,我想显示一个包含youtube链接的灯箱

我在我的项目中使用了requirejs和lightbox,但出现了一个错误: “未捕获的TypeError:对象函数(e,t){return new x.fn.init(e,t,r)}没有方法'colorbox'”

我想这个函数找不到Colorbox,但我不知道为什么

这是我的文件:openYoutubeLink:

define( [ 'modules/common/preferences' ], function ( preferences ) {
  return function () {
    $.colorbox({width:"900px", height:"600px", iframe:true, href:"youtube.de"});
  };
});
下面是我的main.js的一部分,其中包含require.config:

paths: {
    colorbox : 'libs/jquery/jquery.colorbox-min'
}

shim: {
    'colorbox' : { deps: [ 'jquery' ], exports: 'jquery' }
}

我会让主模块需要jQuery和colorbox插件。我需要它们,以确保在执行模块时它们都已加载。目前,您似乎定义了全局
$
,但这似乎是偶然事件,而不是设计

因此,经过修改后,它将如下所示:

define(['modules/common/preferences', 'jquery', 'colorbox'], 
       function (preferences, $) {
  return function () {
    $.colorbox({width:"900px", height:"600px", iframe:true, href:"youtube.de"});
  };
});
此外,我不认为这是您当前问题的根源,但我应该指出,
导出
这里是错误的:

shim: {
    'colorbox' : { deps: [ 'jquery' ], exports: 'jquery' }
}
您希望有一个特定于要加垫片的模块的符号。例如,我将cookie插件用于jQuery,并按如下方式填充它:

define(['modules/common/preferences', 'jquery', 'colorbox'], 
       function (preferences, $) {
  return function () {
    $.colorbox({width:"900px", height:"600px", iframe:true, href:"youtube.de"});
  };
});
“jquery.cookie”:{ 部门:[“jquery”], 导出:“jQuery.cookie” }

jQuery.cookie
是一个符号,当且仅当
jQuery.cookie
文件已正确加载和执行时才定义该符号

(KRyGER建议不定义<代码>导出< /代码>。虽然Realjs文档中说,像jQuery或主干这样的插件不需要有<代码>导出< /COD>定义,但相同的文档则提到,如果不使用<代码>出口< /代码>,那么错误检测的检测将不起作用。我认为最好的。练习总是定义一个
导出
,而不是等到最终的问题出现。)

在这种情况下,根据
导出
是不必要的(搜索“just jQuery或主干插件”)。不确定这是否能解决问题。