- 締切済み
javascriptでマウスイベントを拾うとき
javascriptでマウスイベントを拾うときに、 onLoad関数の中で、 document.onmousedown = mydown; として、 function mydown(e) { として、よくマウスイベントのeを 使いますが、このmydown関数へ引数を増やしてわたしたいのですが、 どうやればいいのですか?普通にカッコのなかにわたすようにしても ダメでした。マウスイベントのeがあるためのように思います。 教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
それは質問の仕方がわるい・・・ document.onmousedownについて聞いているかと思いました。 documentのイベントハンドラなんで、スタティックかなと。 div毎に設定したいなら前回の回答にもしたとおり、無名関数の引数を 指定してやればよいでしょう。 こんな感じ? <script> window.onload=function(){ document.getElementById("hoge1").onmousedown = function(){mydown(this,"aaa")}; document.getElementById("hoge2").onmousedown = function(){mydown(this,"bbb")}; document.getElementById("hoge3").onmousedown = function(){mydown(this,"ccc")}; } function mydown(obj,str) { alert(obj.id+"の引数は"+str); } </script> <style> .hoge{ width:100px; height:100px; border:1px solid #000000; } </style> <div class="hoge" id="hoge1"></div> <div class="hoge" id="hoge2"></div> <div class="hoge" id="hoge3"></div> ようは、前回もききましたが「何を渡したいか?」です。 例にもあるとおり無名関数で自分自身を渡すときはthisが使えます。
- yambejp
- ベストアンサー率51% (3827/7415)
なにを渡したいのですか? 仮に以下のように無名関数で引数を指定したとしても <script> window.onload=function(){ document.onmousedown = function(){mydown("hoge")}; } function mydown(obj) { alert(obj); } </script> のように、単にスタティックな情報をわたしているだけですから <script> window.onload=function(){ document.onmousedown =mydown; } function mydown() { var obj="hoge"; alert(obj); } </script> で十分な気がしますが?
補足
さっそくありがとうございます。 ということは、document.onmousedown に渡す関数は、 引数をマウスイベント以外はもてないということですか? やりたかったのは、 onLoad内でdocumentの中のあるdivをまわして、 それぞれのdocument.onmousedown イベントに文字列の 引数を渡したかったのです。 各divごとに渡す内容が違います。