2014-10-06 14 views
5

我想通过构建一个简单的程序在屏幕上拖动元素来学习Hammer JS,几乎就像Hammer homepage上的一样。Hammer JS v2.0.4仅在Chrome 37.0中无法识别'panstart'或'panmove'

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

削下来的东西,我说只是编写看到一个事件触发要求:在Chrome

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); 
}); 

没有得到记录,但我得到预期的Safari和FF适当的记录。我扩展了事件监听器,以包含'pan,panend,pancancel,panleft,panright,panup,pandown'。这些事件将会在Chrome中登录,所以似乎只有panstart和panmove被忽略。

因此,这段代码将在Chrome的hammer.js页面上运行,因此很显然,Chrome浏览器在该浏览器中看到了panstart和panmove事件,这只是在我的代码中没有发生。这意味着我失去了一些东西,尽管从他们的网站上复制了代码。我检查了我们是在同一个锤子版本,但我不确定还有什么来自这里我需要检查。

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

谢谢。

+0

我会在这个类型的错误的hammer.js回购上创建一个新问题。 – enjoylife 2014-10-20 03:49:06

+0

铬38上的同样问题 – Guglie 2014-10-22 12:13:44

+0

我刚刚有一个非常类似的问题(Chrome 43)。正在调用'panend',但不能启动或移动,并在FF中工作。重新启动浏览器神奇地修复它,但遗憾的是没有恢复调试花了几个小时! – contrebis 2015-08-05 10:54:30

回答

-1

在Hammer站点中明确表示“为了在较慢的设备上获得更好的性能,您应该尽可能简化回调。”我认为这与浏览器是一样的!

也许你的问题是

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

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

请让我知道它是否有帮助,请!

+0

对不起。这是我的一个错误。我正确定位元素(没有'#',当我在DevTools中逐步完成代码验证时)。不知道从哪里来的代码复制到这里。 – DrHall 2014-10-08 17:59:19

相关问题