2014-10-10 42 views
0

我使用Hammer.js和我已經包括錘子錘jQuery插件這樣的:現在Hammer.js不起作用

<script src='res/stat/js/hammer.js'></script> 
<script src='res/stat/js/jquery.hammer.js'></script> 

,與此代碼我試圖得到雙倍點擊開始工作:

<script> 
    var element = document.getElementsByClassName('snap_item'); 
    var hammertime = Hammer(element).on("doubletap", function(event) { 
     alert('hello!'); 
    }); 
</script> 

具有classname'snap_item'的元素存在且拼寫正確。 Hammer.js和JQ插件的路徑也是正確的。我已經在iPhone 5S上進行了測試,並且在雙擊該元素時它不會執行任何操作。

有沒有人知道這裏出了什麼問題?我也包含了JQuery V2。這是造成這個問題嗎?

+0

你應該嘗試將其綁定到身體 – 2014-10-10 18:06:44

回答

2

document.getElementsByClassName返回一組元素。 Hammer構造函數只能使用一個元素。在它自己的初始化每個:

var elements = document.getElementsByClassName('snap_item'); 

[].slice.call(elements).forEach(function(element) { 
    var hammertime = new Hammer(element); 
    hammertime.on('doubletap', function(event) { 
     alert('hello!'); 
    }); 
}); 

的jsfiddle演示:http://jsfiddle.net/moogs/nw6dvgck/

+0

出於某種原因,這是行不通的。在JSFiddle上它可以工作,但是當我複製完全相同的代碼時,它不起作用。 – 2014-10-10 18:23:54

+0

你使用的是最新的hammer.js嗎?我沒有包含jQuery錘子。 – 2014-10-10 18:32:26

+0

是的,這是最新的Hammer.js – 2014-10-10 23:26:06