2014-11-08 104 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