将 Jquery.hammer 和 Hammer 2.0.2 与 RequireJS 一起使用

Posted

技术标签:

【中文标题】将 Jquery.hammer 和 Hammer 2.0.2 与 RequireJS 一起使用【英文标题】:Using Jquery.hammer and Hammer 2.0.2 with RequireJS 【发布时间】:2014-10-01 08:10:44 【问题描述】:

刚刚更新到 Hammer 2.0.2 并添加了 jquery.hammer plugin,但我在项目中需要它时遇到问题。

目前,我刚刚收到“未捕获的 ReferenceError: Hammer is not defined

当我尝试只需要 Hammer 时,我无法在控制台中访问 Hammer。

这是我的要求配置中的重要内容。

require.config(
  paths: 
    '$': '../components/jquery/jquery',
    'jquery': '../components/jquery/jquery',
    'hammer': '../components/hammerjs/hammer',
    'jquery-hammer': '../components/jquery-hammer/jquery.hammer'
  ,
  shim: 
    $: 
      exports: '$'
    ,
    jquery: 
      exports: '$'
    ,
    'hammer': 
      exports: 'Hammer'
    ,
    'jquery-hammer': 
      deps:['$','hammer']
    
  
);

【问题讨论】:

对我来说同样的问题。我猜“锤子”没有正确导出。我曾经在我的 require 回调中的最后一个版本中使用 Hammer = require("Hammer"); 来访问它。但是现在在插件中找不到了。之后可以尝试加载它吗? 【参考方案1】:
    安装 npm ihammerjs 添加到 package.json ---> "hammerjs": "^2.0.8", "@types/hammerjs": "^2.0.36", “类型”:[“hammerjs”, “茉莉花”, “茉莉花2”, “节点”, "q", “硒网络驱动程序”] 添加 import 'hammerjs';ma​​in.ts 文件 如果仍有问题,请使用: npm --force npm 安装

【讨论】:

【参考方案2】:

以这种方式为我工作,从你的路径和垫片中删除 jquery-hammer

require(["Hammer", "jquery"], function()
Hammer = require("Hammer");
jQuery = require("jquery");

  require([
        "../components/jquery-hammer/jquery.hammer", //or the path of your jquery.hammer
        //Any other lib
        ], function()
            //your previous init code
        
);

在调用 jquery.hammer 插件之前强制设置 jQuery 和 Hammer 变量

【讨论】:

以上是关于将 Jquery.hammer 和 Hammer 2.0.2 与 RequireJS 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

jquery.hammer.js 在 android 上崩溃,但在 ios 上运行良好

如何简单实用hammer

HTML5 使用 Hammer.js 拖动事件在 div 上拖放元素

予你手HAMMER CONNECT Edition 10.00.00.49+PLCSIM 14.0 45

如何在特定视口上设置触摸手势/hammer.js 处于活动状态?

Hammer.js分析——基础结构