2016-12-04 7 views
9

例1それは文法的に正しくない可能性があります2</p> <pre><code>Element1 && Element2.addEventListener("input", function() { this function does stuff }); </code></pre> <p>例

Element1.addEventListener ("input", function() { 
this function does stuff 
}); 

に、単一の行に複数の要素には、addEventListenerが、私は二つの要素を同じに与えることができる方法はありにする方法Domメソッドを別々に書くのではなく、同時に(同じ行)

+1

Nop。 tihsは不可能です。 – Nico

+1

[複数の要素にイベントリスナーを追加する]の可能な複製(http://stackoverflow.com/questions/13915702/adding-event-listeners-to-multiple-elements) –

+0

配列内に格納して各関数を使用するとどうなるでしょう – RizkiDPrast

答えて

15

さて、あなたはあなたができる要素を持つ配列がある場合:(あなたがdocument.querySelectorAll('whatever')を行うことによってelementsArrayに得ることができる)

elementsArray.forEach(function(elem) { 
    elem.addEventListener("input", function() { 
     //this function does stuff 
    }); 
}); 

+0

ああ、私はそれが一本の線でできることを望んでいた。それにもかかわらず私は答えを歓迎します – Jamisco

+3

あなたがES6を使用するなら、それは可能です: 'elementsArray.forEach(el => el.addEventListener( 'input'、functionThatDoesStuff))' – GMaiolo

+4

あなたは "シングルライン"の定義は何ですか?どのJSプログラムも改行を取り除いて1行に書くことができます。 –

3

イベントバブルはJavaScriptで重要な概念であり、もしそうならあなたはDOMに直接イベントを追加することができ、コードのいくつかの行を保存することができます、ループの必要はありません:

関連する問題

 関連する問題