2014-11-08 102 views
0

在将Hammer更新为v2之后(可能不那么令人惊讶)停止工作。只是无法弄清楚我如何解决它。Hammer.js事件未定义

问题出现在我的网站上,你可以在这里访问:www.tooi.org。如果向下滚动到“工作”,请单击其中一个项目,然后尝试单击(点按)或滑动。我得到在Chrome开发者工具以下错误:

Uncaught TypeError: undefined is not a function

这是一个手势后触发handleHammer代码:

new Hammer(element[0], { 
    dragLockToAxis: true, 
    dragMinDistance: 0 
}).on('tap drag swipe release', handleHammer(event)); 

在此之后,handleHammer将检查每一种情况下(手势):

function handleHammer(event) { 
    // disable browser scrolling 
    event.preventDefault(); 

    switch(event.type) { 
     case 'tap': 
      (etc.) 

,并指出hammer.js:2358,它说以下内容:

2356 var i = 0; 
2357 while (i < handlers.length) { 
2358  handlers[i](data); 
2359  i++; 
2360 } 

我希望有人能帮助我:)谢谢

+1

你使用的锤子jquery插件..?为什么'event.gesture.preventDefault();'而不是'event.preventDefault();'..? – 2014-11-08 13:25:37

+0

我不知道,但那固定错误nr.1 :)现在只是第二个错误消息仍然 – meneerfab 2014-11-08 13:34:28

回答

2

传递参数作为函数。

new Hammer(element[0], { 
    dragLockToAxis: true, 
    dragMinDistance: 0 
}).on('tap drag swipe release', function(){handleHammer(event)}); 
+0

好吧,错误消息不再显示,但它只是跳过“case”点击':“所以没有任何反应。 Hammer.js v2中不再支持这个功能吗? – meneerfab 2014-11-08 20:50:46

+0

我为此打开了一个新问题:http://stackoverflow.com/questions/26847219/hammer-js-skips-case-inside-switch – meneerfab 2014-11-10 15:33:37