Requirejs 如何在require.js中使用hammer.js插件
我正在尝试将hammer.js插件与require.js一起使用,但我运气不好 这是我的密码:Requirejs 如何在require.js中使用hammer.js插件,requirejs,hammer.js,Requirejs,Hammer.js,我正在尝试将hammer.js插件与require.js一起使用,但我运气不好 这是我的密码: requirejs.config({ paths: { "jquery": ('__proto__' in {}) ? "lib/zepto" : "lib/jquery", "hammer-jquery": "lib/jquery.hammer", "hammer-showtouches": "lib/hammer.showtouches", "h
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();
}
});
});
下面是错误:
未捕获的TypeError:无法读取未定义hammer.showTouchs.js:7的属性“plugins”
未捕获类型错误:无法读取未定义require.js:8的属性“plugins”
未捕获类型错误:无法读取未定义的hammer.fakemultitouch.js:7的属性“plugins”
未捕获类型错误:无法读取未定义require.js:8的属性“plugins”
我尝试在shim配置中包含Hammer,但运气不佳(这是不必要的,因为jquery.Hammer的最新版本与AMD兼容)。您的问题似乎是没有包含
hammerjs jquery
插件所需的hammerjs
库。
要解决此问题,您需要在requirejs
路径中添加类似'hammer':'lib/hammerjs/dist/hammer.min',
此外,这里还有一些关于我如何将
hammerjs
与requirejs
结合使用的相关信息
在我的例子中,我希望它能够与主干网
和requirejs
一起工作。我用bower
安装了这些库
bower install --save hammerjs
bower install --save backbone.hammer
然后,我继续添加RequireJS配置:
- 我注意到
是AMD,并且自动需要jquery。它还默默地依靠锤子。它修改jquery以支持Hammer。不需要垫片jquery.hammer.js
- 我注意到
是AMD,并自动导出Hammer。不需要垫片hammerjs
- 我注意到
是AMD,自动要求backbone.hammer
、下划线
和主干
。它修改主干以支撑锤子。不需要垫片hammer
包裹HammerJS,然后绑定到全局窗口:
// @path utils/hammer
define([
'hammer'
], function (Hammer) {
window.Hammer = Hammer;
});
然后让依赖于HammerJS的插件或模块依赖于
utils/hammer
如果我想在主干视图上有swipeleft和swiperight事件,我应该如何集成这些插件或模块?
bower install --save hammerjs
bower install --save backbone.hammer