- ベストアンサー
イベントハンドラをタグ外に記述するには
- <input type="submit" value="submit" class="btn">で記述したボタンにロールオーバーを設定したいのですが、訳あってinput内に書くことができません。
- 色々と調べて試してみたのですが上手くいかないので、どなたか教えていただけませんか?
- 私が試した方法は、<head></head>内に<script TYPE="text/javascript"> <!-- startEvent("window","load","Over") function Over(){ startEvent("document.forms[0].elemens[1]","onmouseover","Color"); } function Color(){ document.forms[0].elemens[1].style.backgroundColor = "orange"; } --> </script> 以上を記述するという方法です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
window.onload=function(){ document.forms[0].elements[1].onmouseover=Color; } function Color(){ this.style.backgroundColor = "orange"; // document.forms[0].elements[1].style.backgroundColor = "orange"; }
その他の回答 (3)
- Blaise
- ベストアンサー率33% (13/39)
No.3へのコメント W3C的には問題ありとはいえないのでは? しかし、ブロック要素を要求するケースもあるわけで、 改行を嫌う必然性がない限り、理想的には、<span>よりも <div>を使用するのがよいのかも。以下参考抜粋: Generally, block-level elements may contain inline elements and other block-level elements. Generally, inline elements may contain only data and other inline elements. Inherent in this structural distinction is the idea that block elements create "larger" structures than inline elements.
お礼
ご指摘ありがとうございます。
- yambejp
- ベストアンサー率51% (3827/7415)
「訳あって」の訳次第じゃないですかねぇ・・・ 単純にsubmitを何らかの理由でいじれないなら、 それをspanではさんでしまうというのは許される のでしょうか?こんなかんじ <span onMouseover="Color()"> <input type="submit" value="submit" id="btn0" class="btn" > </span> <script language="javascript"> function Color(){ document.getElementById('btn0').style.backgroundColor = "orange"; } </script>
お礼
<body>内に書くこと自体ができない状況でした。しかし大変参考になりました。ありがとうございます。
- nipox
- ベストアンサー率32% (10/31)
こんなのはいかがです? つかえるか保障はありませんが。 document.(省略).onmouseover='関数のカッコなし' DOMの勉強のときにどこかのサイトで見ました。 「ドラッグアンドドロップでオブジェクトを動かす」 みたいなところで出てましたのでそちらのほうを見てみては
お礼
ありがとうございます。参考にさせていただきます。
お礼
コピーさせていただいただけでそのまま動作させることができました。ありがとうございます。