Hammer JS v2.0.4仅在Chrome 37.0中无法识别'panstart'或'panmove'

DrH*_*all 6 javascript google-chrome hammer.js

我想通过构建一个简单的程序在屏幕上拖动一个元素来学习Hammer JS,就像在Hammer主页上一样.

我使用了Hammer github页面上发布的代码,它似乎与主页上使用的代码相同.我在Chrome(37.0/OSX)中测试了这项工作.使用它一段时间并且无法移动元素后,我在Safari和FF中打开了相同的页面.它在这两种浏览器中都运行良好.

为了减少事情,我添加了代码所需的代码以查看事件触发器:

var mover = document.getElementById("mover");

var mc = new Hammer.Manager(mover);
mc.add(new Hammer.Pan({ threshold: 0, pointers: 0 }));

mc.on("panstart panmove", function(ev) {
  console.log(ev);
});
Run Code Online (Sandbox Code Playgroud)

Chrome中没有记录任何内容,但我在Safari和FF中按预期正确记录.我扩展了事件监听器,包括'pan,panend,pancancel,panleft,panright,panup,pandown'.这些事件将登录Chrome,因此似乎只有panstart和panmove被忽略了.

因此,此代码将在Chrome的hammer.js页面上运行,因此很明显Chrome确实会在该浏览器中看到panstart和panmove事件,这只是我的代码中没有发生的事情.这意味着我遗漏了一些东西,尽管从他们的网站上复制了代码.我检查过我们使用的是相同的Hammer版本,但我不确定此处还有什么需要检查.

还有其他人遇到并解决了这个问题吗?或者也许知道我在创建这个问题时做错了什么?

谢谢.

Ari*_*erg -1

在 Hammer 网站中明确指出“为了在较慢的设备上获得更好的性能,您应该尝试使回调尽可能简单。” 我认为浏览器也是如此!

也许你的问题是

var mover = document.getElementById("#mover");
Run Code Online (Sandbox Code Playgroud)

为什么输入“#mover”而不是“mover”?“#”符号用于 JQuery,并且您使用的是纯 JavaScript。让我感到困惑的是,在某些浏览器中这有效,所以我想你的 ElementID 实际上以“#”开头......

请告诉我是否有帮助!