• ベストアンサー

引数付きでイベントをセットしたい

下のようにして引数を付けてイベントをセットしようとしたのですが、 どうも動作がうまくいってないようなのです。引数なし>Obj.onclick = check; ならちゃんと動作しました。どうすれば引数付きでセットできるのでしょうか? function check(text) { alert(text); } function sample() Obj = document.getElementById("sample"); Obj.onclick = check("メッセージ");

質問者が選んだベストアンサー

  • ベストアンサー
  • susie-t
  • ベストアンサー率86% (37/43)
回答No.2

<div id="sample">aaa</div> <script> function check(text) { alert(text); } Obj = document.getElementById("sample"); //checkをfunctionで囲む Obj.onclick = function(){check("メッセージ");}; </script> としてみてください。

takagoo100
質問者

お礼

ご返答ありがとうございます。 なるほど、そういうことでしたか。

その他の回答 (2)

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

こんなやりかたもあります <div id="sample">aaa</div> <script> function check(){ alert(this.text); } Obj = document.getElementById("sample"); Obj.text = "メッセージ"; Obj.onclick = check; </script>

takagoo100
質問者

お礼

ご返答ありがとうございます。 まだjavascript自体あまり理解してないので不思議な感じがしますが その中でthisが使えるんですね。1つ勉強になりました。

noname#39970
noname#39970
回答No.1

checkの返り値が無いからでは?

takagoo100
質問者

お礼

ご返答ありがとうございます。 たぶん自分の理解が間違ってると思うのですが checkの返り値とは例えばこういうことでしょうか? function check(text) { alert(text); return 1; } これでもちゃんと動作しませんでした。 あと function sample() { Obj = document.getElementById("sample"); Obj.onclick = check("メッセージ"); } こうでした、すいません。

関連するQ&A

専門家に質問してみよう