我正在尝试将hammer.js 插件与require.js 一起使用,但我没有运气。
这是我的代码:
requirejs.config({
paths: {
"jquery": ('__proto__' in {}) ? "lib/zepto" : "lib/jquery",
"hammer-jquery": "lib/jquery.hammer",
"hammer-showtouches": "lib/hammer.showtouches",
"hammer-fakemultitouch": "lib/hammer.fakemultitouch"
},
shim: {
"jquery": {
exports: "$"
},
"hammer-showtouches": {
deps: [ "hammer-jquery" ],
exports: "Hammer.plugins.showTouches"
},
"hammer-fakemultitouch": {
deps: [ "hammer-jquery" ],
exports: "Hammer.plugins.fakeMultitouch"
}
},
waitSeconds: 30
});
requirejs(["jquery","hammer-jquery","hammer-showtouches","hammer-fakemultitouch"], function ($,Hammer) {
$(function(){
if(!Hammer.HAS_TOUCHEVENTS && !Hammer.HAS_POINTEREVENTS) {
Hammer.plugins.showTouches();
Hammer.plugins.fakeMultitouch();
}
});
});
这是错误:
未捕获的类型错误:无法读取未定义的hammer.showtouches.js:7 的属性“插件”
未捕获的类型错误:无法读取未定义的 require.js:8 的属性“插件”
未捕获的类型错误:无法读取未定义的hammer.fakemultitouch.js:7 的属性“插件”
未捕获的类型错误:无法读取未定义的 require.js:8 的属性“插件”
我试图将 Hammer 包含在 shim 配置中,但没有成功(没有必要,因为 jquery.hammer 的最新版本与 AMD 兼容)。