Javascript 将requirejs与Colorbox一起使用:uncaughttypeerror
所以,点击一个按钮后,我想显示一个包含youtube链接的灯箱 我在我的项目中使用了requirejs和lightbox,但出现了一个错误: “未捕获的TypeError:对象函数(e,t){return new x.fn.init(e,t,r)}没有方法'colorbox'” 我想这个函数找不到Colorbox,但我不知道为什么 这是我的文件:openYoutubeLink: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
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或主干插件”)。不确定这是否能解决问题。