2012-04-17 111 views
6

我已經開始使用Hammer.js(https://github.com/eightmedia/hammer.js)這是一個很棒的小腳本,但我不確定如何使用jQuery的.on()事件處理程序委託事件。使用jQuery委託Hammer.js事件

我已經在這裏建立了一個小的jsfiddle例如:http://jsfiddle.net/will/3dUKu/1/

var i = 0; 
// How would I apply hammer to this situation? 
$('nav').on('click', 'button', function() { 
    $('<button id="' + i + '">Extra button ' + i + ' (' + $(this).attr('id') + ')</button>').appendTo('nav'); 
    i++; 
}); 

回答

3

不知道如果你找到了一個回答你的問題。解決方案很簡單,兩部分。首先,因爲你試圖使用jQuery調用,你應該使用jQuery插件版本的Hammer。在jQuery插件的最新版本,可以發現:

http://eightmedia.github.io/hammer.js/dist/jquery.hammer.min.js

第二部分是你需要使用錘子的方法與對象的選擇。您可以通過在選擇器和綁定之間插入Hammer調用來完成此操作。像這樣:

jQuery對象:

$('nav').on('click', 'button', function(){ 
    /* ... */ 
}); 

jQuery的錘對象:

$('nav').hammer().on('click', 'button', function(){ 
    /* ... */ 
}); 

就是這樣......

+0

這不會對我有最新的hammerjs .. $工作('.parent')。hammer()。on('tap','.child',function(){ console.log('tap'); }); – 2014-09-19 09:07:59

+0

所有'jQ'插件是否實例化一個'Hammer'實例並將其附加到該元素。它看起來不像事實上有助於事件委派。 – Lambart 2015-04-07 18:04:39