2012-04-17 28 views
6

He comenzado a usar Hammer.js (https://github.com/eightmedia/hammer.js), que es una pequeña secuencia de comandos, pero no estoy seguro de cómo delegar los eventos utilizando el controlador de eventos .on() de jQuery.Delegando eventos Hammer.js con jQuery

He creado un pequeño ejemplo jsFiddle aquí: 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++; 
}); 

Respuesta

3

No sabe si alguna vez encontrado una respuesta a su pregunta. La solución es simple y dos partes. En primer lugar, dado que está tratando de usar las llamadas con jQuery, debe usar la versión del complemento jQuery de Hammer. Una versión actual del plugin de jQuery se puede encontrar en:

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

La segunda parte es que usted necesita para utilizar el método de Martillo con la selección de objetos. Para ello, inserte la llamada Hammer entre el selector y el enlace. De este modo:

jQuery objeto:

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

jQuery martillo objeto:

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

Eso es todo ...

+0

esto no funciona para mí con la última hammerjs .. $ ('.parent'). hammer(). on ('tap', '.child', function() { console.log ('tap'); }); –

+0

Todo el plugin 'jQ' hace una instancia de 'Hammer' y lo asocia al elemento. No parece que realmente ayude con la delegación de eventos en absoluto. – Lambart

Cuestiones relacionadas