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

は知ってはいけません。解決策は単純で2つの部分です。まず、jQueryで呼び出しを使用しようとしているので、jQueryプラグイン・バージョンのHammerを使用する必要があります。 2番目の部分は、あなたがオブジェクトの選択とハンマーのメソッドを使用する必要がある

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

:jQueryプラグインの最新バージョンは、見つけることができます。これはセレクタとバインディングの間に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