1

プレーンなJavascriptメソッドを使用するだけでJQueryセレクターなしでハンマーJSイベントを使用するにはどうすればよいですか?

4

4 に答える 4

3

ハンマーをコンテナ要素にバインドします。

var hammer = new Hammer(document.getElementById("container"));

これで、コンテナ要素で実行されるすべてのジェスチャで、ジェスチャに関する情報を含むコールバックオブジェクトを受け取ります。

関数の例:

hammer.ondragstart = function(ev) { };
hammer.ondrag = function(ev) { };
hammer.ondragend = function(ev) { };
hammer.onswipe = function(ev) { };

hammer.jsは完全にスタンドアロンバージョンとして利用できるため、jqueryリソースをインポートする必要はありません。参照:http ://eightmedia.github.com/hammer.js/

完全なドキュメント:https ://github.com/eightmedia/hammer.js#documentation

于 2013-02-04T15:37:05.953 に答える
1

GitHubのドキュメントをざっと見てみましょう。

var hammer = new Hammer(document.getElementById("container"));

jQueryなしで「ハンマー」を作成します。その後、コールバック関数を設定できます。そのためのjQueryも必要ありません。しかし、注意してください!HammerJSは内部でjQueryを必要とする可能性があるため、<script src="path/to/jquery.js"></script>

于 2013-02-04T15:31:18.460 に答える
1

簡単な答えは、単純な古いDOMAPIを使用することです。一度含めると、jQueryだけを使用する義務はなく、強制されることもありません。

var someElements = document.querySelectorAll('.someClass');//not jQuery, perfectly valid
var byId = document.getElementById('someId');
var sameScript = $('#anotherId');//nothing stops me from doing this... using jQ for some things

DOM APIが少し不格好だと思ったら(それはそうです)、次のようなことをしたほうがいいでしょう:

var pureDOMRef = $('someID')[0];//returns "normal" Element object, removes jQ wrapper
var multiple = Array.prototype.slice.apply($('.classSelector'),[0]);//returns Array

ただ遊んで、必要に応じて前後に切り替えてください、それは何も悪いことではありません

于 2013-02-04T15:52:05.167 に答える
0

新しいバージョンのhammer.jsは、JQueryプラグインを提供します。これは、JQueryのプラグインではなく、FORJQueryであることを最初に理解する必要があります。したがって、他の目的でサイトにJQueryを使用する場合は、基本的に次のようなJQueryセレクターでhammerからプラグインを「適用」できると便利です。

$(element).hammer(options).bind("pan", myPanHandler);

Hammer.jsには最新のOOPパターンがあるため、一度に複数のデータ処理にインスタンスを使用できます。したがって、hammerにバインドされているすべてのJQuery要素はインスタンスです。(IMHO)このプラグインを使用するか、Vanillaを使用してもかまわない場合は、JQueryの速度が数ミリ秒遅くなります。

http://hammerjs.github.io/jquery-plugin/

于 2016-07-11T00:34:39.887 に答える