Hammer JS v2.0.4无法识别'panstart'或者'panmove'仅Ch
Hammer JS v2.0.4 not recognizing 'panstart' or 'panmove' in Chrome 37.0 only
我想通过构建一个简单的程序来学习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实际上以"#"开头。。。
如果有帮助,请告诉我!