複数のイベントをリスナーにバインドする(JQueryなし)?質問する

複数のイベントをリスナーにバインドする(JQueryなし)?質問する

ブラウザ イベントを操作しているときに、モバイル デバイス用の Safari の touchEvents を組み込み始めました。addEventListener条件文が積み重なっていることに気が付きました。このプロジェクトでは JQuery を使用できません。

標準のイベント リスナー:

/* option 1 */
window.addEventListener('mousemove', this.mouseMoveHandler, false);
window.addEventListener('touchmove', this.mouseMoveHandler, false);

/* option 2, only enables the required event */
var isTouchEnabled = window.Touch || false;
window.addEventListener(isTouchEnabled ? 'touchmove' : 'mousemove', this.mouseMoveHandler, false);

JQuery ではbind、次のように複数のイベントが許可されます。

$(window).bind('mousemove touchmove', function(e) {
    //do something;
});

JQuery の例のように 2 つのイベント リスナーを組み合わせる方法はありますか?例:

window.addEventListener('mousemove touchmove', this.mouseMoveHandler, false);

ご提案やヒントがあればぜひお聞かせください。

ベストアンサー1

望ましい結果を実現するコンパクトな構文、POJS:

   "mousemove touchmove".split(" ").forEach(function(e){
      window.addEventListener(e,mouseMoveHandler,false);
    });

おすすめ記事