我在快速点击的时候使用了requirejs。我得到以下错误:
Uncaught TypeError: Cannot set property 'trackingClick' of undefined 在Fastclick.js第30行中,执行以下操作:this.trackingClick = false;
在config.js中,我运行app.js:
require.config({
paths: {
fastclick:'fastclick'
}
)};
require(['app'], function (App) {
App.initialize();
});在我的app.js中,我这样做:
define(['fastclick'], function(fastclick){
var app = {
initialize: function () {
var attachFastClick = require('fastclick');
attachFastClick(document.body);
}
}
return app;
} 浏览器启动正常,调试器中的fastclick库被正确实例化和解析,但Fastclick.js中的this仍然无法解析。
我也尝试过fastclick(document.body);,但似乎没有任何效果。
有什么想法吗?
发布于 2013-08-01 04:52:15
浏览Fastclick代码,我发现以下函数可以正常工作:Fastclick.attach
所以,与其调用:
var attachFastClick = require('fastclick');
attachFastClick(document.body);以下是工作原理:
fastclick.attach(document.body);发布于 2013-08-07 00:35:24
在我的应用程序中,我只需使用下面看到的代码就可以通过快速单击正确地初始化我的应用程序。我删除了所有其他不相关的代码行,以使我的解决方案更加清晰
define([
'fastclick',
], function(FastClick){
var initialize = function(){
new FastClick(document.body);
}
return {
initialize: initialize
};
});发布于 2014-02-28 07:32:35
是的,就像dsheene所说的那样,FastClick库将只为Browserify或另一个CommonJS样式返回FastClick.attach。对于AMD样式,FastClick将返回完整的FastClick对象。
从FastClick源文件中:
if (typeof define !== 'undefined' && define.amd) {
// AMD. Register as an anonymous module.
define(function() {
'use strict';
return FastClick;
});
}在您的app.js文件中,您想要。
define(['fastclick'], function(fastclick){
var app = {
initialize: function () {
var FastClick = require('fastclick');
FastClick.attach(document.body);
}
}
return app;
}https://stackoverflow.com/questions/17980599
复制相似问题