JavaScriptでのイベント内の引数の渡し方について
複数の部品からイベントを呼び出したい
var b=document.querySelector('button');
b.addEventListener("click",func(a));
このようにすると直接関数を呼び出してしまう
b.addEventListener("click",function(){func(1)});
これだと関数側でボタンが参照できない
function func2(n) {
return function (){
alert(n+","+this.tagName);
}
}
関数側で関数を返すようにするとうまくいく
呼び出し側で実現する方法はないでしょうか?
JavaScript
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="utf-8"> 5 <title>引数ありのイベント呼び出し</title> 6 </head> 7 <body> 8 <button type="button" name="button">test</button> 9 10 <script type="text/javascript"> 11 function func(n) { 12 alert(n+","+this.tagName); 13 } 14 function func2(n) { 15 return function (){ 16 alert(n+","+this.tagName); 17 } 18 } 19 var b=document.querySelector('button'); 20 b.addEventListener("click",function(){func(1)}); 21 b.addEventListener("click",func2(1)); 22 23 </script> 24 </body> 25</html> 26