• 締切済み

javascriptでマウスイベントを拾うとき

javascriptでマウスイベントを拾うときに、 onLoad関数の中で、 document.onmousedown = mydown; として、 function mydown(e) { として、よくマウスイベントのeを 使いますが、このmydown関数へ引数を増やしてわたしたいのですが、 どうやればいいのですか?普通にカッコのなかにわたすようにしても ダメでした。マウスイベントのeがあるためのように思います。 教えてください。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

それは質問の仕方がわるい・・・ 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)
回答No.1

なにを渡したいのですか? 仮に以下のように無名関数で引数を指定したとしても <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> で十分な気がしますが?

suucha
質問者

補足

さっそくありがとうございます。 ということは、document.onmousedown に渡す関数は、 引数をマウスイベント以外はもてないということですか? やりたかったのは、 onLoad内でdocumentの中のあるdivをまわして、 それぞれのdocument.onmousedown イベントに文字列の 引数を渡したかったのです。 各divごとに渡す内容が違います。

関連するQ&A