web-dev-qa-db-ja.com

Hammer.jsオブジェクトにはメソッドaddEventListenerがありません

エラーが発生しました:Uncaught TypeError: Object [object Object] has no method 'addEventListener' hammer.js:168

私のコードは次のようなものです:

<script type="text/javascript" src="js/hammer.js"></script>

デバイスレディ機能の場合:

 var resim = $('#kaydir');

 Hammer(resim).on('swipeleft', function(ev){
     console.log('left: ', ev);
 });

エラーはhammer.jsにあるようです。私は何をすべきか?

15
hdayi

あなたの問題は、 Hammer.jsのjQueryプラグイン がインストールされていないことだと思います( GitHub )。

このため、jQueryオブジェクトをHammer()関数に渡すことはできません。2つのオプションがあります。

JQueryプラグインを使用

上記でリンクしたjQueryプラグインをプロジェクトに追加してから、次のコマンドを呼び出します。

_$('#kaydir').Hammer(...)
_

JQueryプラグインなし

_[0]_を使用して、要素のみをHammer()に渡し、jQueryオブジェクトは渡しません。

_Hammer(resim[0]).on(...)
_

または、代わりにresim変数を変更して、JavaScriptのgetElementByIdを呼び出した結果を保持します。

_var resim = document.getElementById('kaydir');
Hammer(resim).on(...)
_
29
James Donnelly

JQueryを使用している場合は、 jQuery Hammer version を使用して、次のように使用する必要があります。

var resim = $("#kaydir");
resim.hammer().on("swipeleft", function(ev) {
    console.log('left: ', ev);
});
2
flks