- ベストアンサー
引数付きでイベントをセットしたい
下のようにして引数を付けてイベントをセットしようとしたのですが、 どうも動作がうまくいってないようなのです。引数なし>Obj.onclick = check; ならちゃんと動作しました。どうすれば引数付きでセットできるのでしょうか? function check(text) { alert(text); } function sample() Obj = document.getElementById("sample"); Obj.onclick = check("メッセージ");
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
<div id="sample">aaa</div> <script> function check(text) { alert(text); } Obj = document.getElementById("sample"); //checkをfunctionで囲む Obj.onclick = function(){check("メッセージ");}; </script> としてみてください。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
こんなやりかたもあります <div id="sample">aaa</div> <script> function check(){ alert(this.text); } Obj = document.getElementById("sample"); Obj.text = "メッセージ"; Obj.onclick = check; </script>
お礼
ご返答ありがとうございます。 まだjavascript自体あまり理解してないので不思議な感じがしますが その中でthisが使えるんですね。1つ勉強になりました。
checkの返り値が無いからでは?
お礼
ご返答ありがとうございます。 たぶん自分の理解が間違ってると思うのですが checkの返り値とは例えばこういうことでしょうか? function check(text) { alert(text); return 1; } これでもちゃんと動作しませんでした。 あと function sample() { Obj = document.getElementById("sample"); Obj.onclick = check("メッセージ"); } こうでした、すいません。
お礼
ご返答ありがとうございます。 なるほど、そういうことでしたか。