2012-04-17 69 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