2017-02-28 3 views
0

簡単な答えがあると思いますが、これには適切な解決策が見つかりません。私はそれがquerySelectorAllで行われなければならないことを知っていますが、この場合にどのように使用するのか分かりません。複数のIDでこの作業を行うには

IDの#modalA,#modalBおよび#modalCの要素があります。私はコードを複製したくありません。だから私はこれのベストプラクティスが何かを理解したいですか?

マークアップを変更できないため、getElementByClassNameを使用できません。

var getModalsA = document.getElementById('modalA'); 
 
var getModalsB = document.getElementById('modalB'); 
 
var getModalsC = document.getElementById('modalC'); 
 

 
getModalsA.addEventListener('touchmove', function(e) { 
 

 
    e.preventDefault(); 
 

 
}, false);

+1

[JavaScriptのクリックイベントリスナーのクラス](http://stackoverflow.com/questions/19655189/javascript-click-event-listener-on-class) – Turnip

+3

IDを使用せず、クラスを使用します。 –

+0

マークアップを変更できないため、getElementByClassNameは使用できません。既存のマークアップで解決策が必要です。 :( – Elvis

答えて

0

私は、あなたは、単に小さなリファクタリング後にしているかはわかりません。

何かのように:

function addListenersToElement(id) { 
    var el = document.getElementById(id); 
    el.addEventListener('touchmove', function(e) { 

     e.preventDefault(); 

    }, false); 
} 

var ids = ['modalA', 'modalB', 'modalC']; 
ids.forEach(addListenersToElement); 
ページのマークアップを変更することはできません場合、私はjQueryのか、このようなもののために類似した(または軽量バリアント)を使用していますが、考え

、おそらくあなたの最善の策はリファクタリングすることですより小さな機能のコード。

+0

ありがとうございました。あなたの答えは私のために働いた。 – Elvis

関連する問題