Hammer JS v2.0.4无法识别'panstart'或者'panmove'仅Ch

Hammer JS v2.0.4 not recognizing 'panstart' or 'panmove' in Chrome 37.0 only

本文关键字:panstart panmove Ch 或者 识别 v2 JS Hammer      更新时间:2023-09-26

我想通过构建一个简单的程序来学习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);
});

Chrome中没有任何东西被记录,但我在Safari和FF中得到了预期的正确记录。我扩展了事件侦听器,包括"pan,panend,pancancel,panleft,panright,panup,pandown"。这些事件将登录Chrome,所以似乎只有panstart和panmove被忽略了。

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

其他人遇到并解决了这个问题吗?或者也许知道我在制造这个问题上做错了什么?

谢谢。

在Hammer网站上明确表示"为了在速度较慢的设备上获得更好的性能,你应该尽可能简单地进行回调。"我认为浏览器也是如此!

也许你的问题是

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

为什么键入"#mover"而不是"mover"?"#"符号表示JQuery,您使用的是纯javascript。这让我很困惑,在一些浏览器中这是有效的,所以我想象你的ElementID实际上以"#"开头。。。

如果有帮助,请告诉我!