【问题标题】:Initialising fastclick with requirejs使用 requirejs 初始化 fastclick
【发布时间】:2013-08-01 13:57:43
【问题描述】:

我将 requirejs 与 fastclick 一起使用。 我收到以下错误:

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);,但似乎没有任何效果。

有什么想法吗?

【问题讨论】:

    标签: cordova requirejs fastclick.js


    【解决方案1】:

    查看 Fastclick 代码,我发现以下功能有效: Fastclick.attach

    所以,不要调用:

     var attachFastClick = require('fastclick');
            attachFastClick(document.body);
    

    以下作品:

     fastclick.attach(document.body);
    

    【讨论】:

      【解决方案2】:

      在我的应用程序中,我只是使用下面的代码通过 fastclick 正确初始化我的应用程序。我删除了所有其他不相关的代码行,以使我的解决方案更加清晰

      define([
          'fastclick',
      ], function(FastClick){
          var initialize = function(){
              new FastClick(document.body);
          }
          return {
              initialize: initialize
          };
      });
      

      【讨论】:

        【解决方案3】:

        是的,就像 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;
        }
        

        【讨论】:

          猜你喜欢
          • 2013-06-02
          • 2017-09-16
          • 2016-02-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多