我正在嘗試在我的Backbone應用程序中集成Hammer JS,但是我收到錯誤:Object [object Object]沒有方法'hammer'。 我在RequireJS中使用Backbone。 這個錯誤發生在我撥打方法hammer()在我的這個$ el。對象沒有方法錘(Hammer,Backbone,RequireJS)
下面是我正在使用的代碼。
app.js
require.config({
baseUrl: 'js/libs',
paths: {
// Directories
collections: '../collections',
models: '../models',
views: '../views',
templates: '../../templates',
// Files
dualStorage: 'backbone.dualStorage',
hammer: 'hammer.min',
jQueryHammer: 'jquery.hammer.min',
jQueryAnimate: 'jquery.animate-enhanced.min'
},
shim: {
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
'underscore': {
exports: '_'
},
'jQueryHammer': {
deps: ['jquery', 'hammer']
},
'dualStorage': {
deps: ['underscore', 'backbone']
}
}
});
require([
'jquery',
'backbone',
'hammer',
'jQueryHammer',
'../router'
], function($, Backbone, Hammer, jQueryHammer, Router) {
var router = new Router();
});
view.js
define([
'jquery',
'underscore',
'backbone',
'text!templates/avatar/StyleAvatarTemplate.html',
'hisrc',
'hammer',
'jQueryHammer',
'jQueryAnimate'
], function($, _, Backbone, styleAvatarTemplate) {
var StyleAvatarView = Backbone.View.extend({
initialize: function(options) {
this.gender = options.gender;
this.age = options.age;
},
events: {
"swipe": "changeStyle"
},
changeStyle: function(e) {
alert('test');
console.log(e);
},
render: function() {
var data = {
collection: this.collection.models,
gender: this.gender,
age: this.age,
_: _
};
this.template = _.template(styleAvatarTemplate, data);
this.$el.html(this.template);
this.$el.hammer();
return this;
}
});
return StyleAvatarView;
});
難道我做錯了什麼?
請'的console.log($ fn.hammer)檢查;'之前調用它。 –
我只是試過,我得到「undefined」 – Rido
不好,請檢查這個https://github.com/EightMedia/hammer.js/issues/331它有2 jsfiddle與工作插件。 –