• ベストアンサー

イベント属性の一括設定

JavaScriptで、例えば onmouseover= や onmouseout= などで指定するようなスクリプトがよくありますが、その指定内容が長い場合、ページ全体も大きく煩雑になりがちです。 そこで、同じ設定部分は、ちょうど"style"属性のように別にまとめて書いておいて、それぞれ、それを参照するようにはできないものでしょうか? また、他によい方法があればお教えいただければと思います。

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

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

classやid、タグの名前などの単位でスクリプトを埋め込む手はあります。 ブラウザによってスピードに違いがあるため使う場合は慎重に。 <script language="javascript"> window.onload=function(){ var tags=document.getElementsByTagName("*"); for(var i=0;i<tags.length;i++){ if(tags[i].className=="hoge"){ tags[i].onmouseover=function(){ alert(1); } } } } </script> <style type="text/css"> table{ border-collapse:collapse; } td{ border:solid 1px #000; } </style> <table> <tr> <td class="hoge">○</td> <td>×</td> <td>×</td> </tr> <tr> <td>×</td> <td class="hoge">○</td> <td>×</td> </tr> <tr> <td>×</td> <td>×</td> <td class="hoge">○</td> </tr> </table>

R2D2C3PO
質問者

お礼

ありがとうございました。 分かりやすい例を挙げていただき、参考になりました。

その他の回答 (2)

noname#35109
noname#35109
回答No.2

私もまず, #1 の方と同様のことしか思いつきませんでした。 もしくは,外部 JS に function を持っていくとかです。 しかし... > 同じ設定部分は、ちょうど"style"属性のように別にまとめて書いておいて、 ??? ひょっとしたら, こういうことでしょうか↓? behavior - CSS http://www5e.biglobe.ne.jp/~access_r/hp/css/css_behavior_001.html IE 限定で ビヘイビア という機能があります。 例えば,全ての TD 要素に 同じ JavaScript の onmouseover などのイベントハンドラを適用することができます。 IE 限定ですからほとんど使い物にならないかもしれませんね。

R2D2C3PO
質問者

お礼

ありがとうございました。

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.1

<head>タグ内に <SCRIPT language="JavaScript"> <!-- function change() { ~ ~ } --> </script> として <A href="JavaScript:change()"> や <input type="button" onClick="change()"> <img src="***/gif" onMouseover="change()" などのようにする方法のことですかね?

R2D2C3PO
質問者

お礼

ありがとうございました。

関連するQ&A