2012-04-17 6 views
6

작은 스크립트 인 Hammer.js (https://github.com/eightmedia/hammer.js)를 사용하기 시작했지만 jQuery의 .on() 이벤트 처리기를 사용하여 이벤트를 위임하는 방법을 잘 모르겠습니다.jQuery로 Hammer.js 이벤트 위임

여기 좀 jsfiddle 예를 설정 한 : 만약 당신이 귀하의 질문에 대한 답변을하는 경우

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

http://jsfiddle.net/will/3dUKu/1/ 알고하지 마십시오. 해결책은 간단하고 두 부분입니다. 먼저 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(){ 
    /* ... */ 
}); 

...이 최신 hammerjs .. $로 나를 위해 작동하지 않습니다

+0

('.parent') .hammer(). on ('tap', '.child', function() { console.log ('tap'); }); –

+0

모든'jQ' 플러그인은'Hammer' 인스턴스를 인스턴스화하여 요소에 첨부합니다. 실제로 이벤트 위임에 도움이되는 것처럼 보입니다. – Lambart