将requirejs与Colorbox一起使用:未捕获的类型错误
Using requirejs with Colorbox: Uncaught TypeError
所以,在点击一个按钮后,我想显示一个包含YouTube链接的灯箱。
我在项目中使用 requirejs 和灯箱,但出现错误:"Uncatch TypeError: Object function (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"});
};
});
这是我的主要的一部分.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"});
};
});
另外,我不认为这是您直接问题的根源,但我应该提到这里的exports
是错误的:
shim: {
'colorbox' : { deps: [ 'jquery' ], exports: 'jquery' }
}
您需要一个特定于要填充的模块的符号。例如,我使用 jQuery 的 cookie 插件并像这样填充它:
'jquery.cookie': { 部门: ["jquery"], 导出:"jQuery.cookie" }
jQuery.cookie
是一个符号,当且仅当jquery.cookie
文件已正确加载和执行时定义。
(克里格建议不要定义exports
。虽然 RequireJS 文档确实说像 jQuery 或 Backbone 这样的插件不需要定义exports
,但同样的文档随后提到,如果不使用错误条件exports
检测将不起作用。我认为最佳实践是始终定义exports
而不是等到最终问题出现。
相关文章:
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 我们可以得到jQueryValidate错误类型吗
- 错误“类型错误: $(..).孩子不是一种功能”
- 谷歌图表绘制()方法错误类型时给定数据表
- 错误:类型错误: $(..).选择选择器不是使用 requireJS 加载的函数库
- 我收到一个错误:类型错误:在使用解析 API 更新用户对象时未定义 e.changes.如何解决这个问题
- 随机子字符串错误?“类型错误:在对象中找不到函数子字符串.".
- 无法理解为什么代码给出错误:类型错误:0 是只读的
- 为什么我收到jQuery错误“类型错误:$(..).在以下场景中,Live 不是一个函数
- 角度类型提前异步结果 - 收到错误“类型错误:无法使用'in'运算符搜索 ..在..".
- 在 Node.js 服务器内发出异步请求错误:“类型错误:对象 #<对象> 没有方法'_implicitHeader'”
- JQuery 错误: 类型错误: 'undefined' 不是一个函数
- 在 Angular 应用程序上收到错误:类型错误:无法读取未定义的属性“then”
- 获取错误类型错误:onOk 不是一个函数
- 如何检测带有源的音频标记的错误类型
- Javascript-错误:inQuery Parse.com的102错误类型
- Javascript变量作用域问题-错误:类型错误:this.graphics未定义
- 捕获脚本错误 - 类型,行和文件
- jquery错误类型错误:值不是对象..split(& # 39; & # 39;)