我有一个使用 jquery、jquery mobile 和 requireJS (2.0) 的工作项目。现在我在将 jquery.mobile.iscrollview 集成到 requireJS 世界时遇到了问题。
我的 requirejs 配置如下所示:
(function (require) {
"use strict";
require.config({
paths:{
'angular':'../external-libs/angular-1.0.3',
'jquery':'../external-libs/jquery-1.7.2',
'jquery.mobile':'../external-libs/jquery.mobile-1.2.0',
'adapter': '../external-libs/jquery-mobile-angular-adapter-1.2.0',
'moment': '../external-libs/moment-1.6.2.min',
'iscroll': '../external-libs/iscroll',
'iscrollview': '../external-libs/jquery.mobile.iscrollview'
},
shim:{
'angular':{ deps:['jquery'], exports:'angular' },
'iscroll':{ deps:['jquery'], exports:'iscroll' },
'iscrollview':{ deps:['jquery.mobile', 'iscroll'], exports:'iscrollview' }
}
});
require([
"jquery",
"jquery.mobile",
"adapter",
"moment",
"iscroll",
"iscrollview",
"myApp"
], function () {
//
});
}(require));
这工作得很好,只要 requireJS 优化器没有在生产模式下运行,只有一个大的 JS 文件应该提供给客户端。即使将优化器设置为不优化任何东西(优化:无),它也只是将所有 js 文件连接在一起,它不起作用。
加载网站时的错误消息是
未捕获的类型错误:无法读取未定义的属性“ignoreContentEnabled”
它发生在文件“jquery.mobile.iscrollview.js”中,从代码中可以明显看出,在解析文件时 $.mobile 对象尚不可用,因为它仅在 jquery 就绪事件之后创建(我思考)。
知道如何解决这个问题吗?
谢谢!
马可