javascriptに関する質問です。ボタンを押すとイメージが切り替わる様にしたのですが、更に違うボタンを押した時に最初に押したボタンが元に戻るようにする方法がわかりません。ソースでの回答を希望します。

以下にテストページを作成しましたのでご確認の上回答をお願いします。
http://amenohiha.hp.infoseek.co.jp/test.html

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/03/18 20:55:41
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:aki73ix No.1

回答回数5224ベストアンサー獲得回数27

ポイント60pt

<body leftmargin="0" topmargin="50"  onLoad="MM_preloadImages('img/btn_small_1.gif','img/btn_middle_1.gif','img/btn_large_1.gif')"> ←まず、括弧とじわすれがあります

次に以下の関数を追加します

function MM_Restore(){

   MM_swapImage('font-s','','img/btn_small_0.gif',1);

   MM_swapImage('font-m','','img/btn_middle_0.gif',1);

   MM_swapImage('font-l','','img/btn_large_0.gif',1) 

}

その上で

<a href="#" onMouseOut="MM_swapImgRestore()" onMouseDown="MM_Restore();MM_swapImage('font-s','','img/btn_small_1.gif',1);" onMouseUp="MM_upImages('font-s','','img/btn_small_1.gif',1) "><img src="img/btn_small_0.gif"name="font-s" width="34" height="32" border="0"></a>

<a href="#" onMouseOut="MM_swapImgRestore()" onMouseDown="MM_Restore();MM_swapImage('font-m','','img/btn_middle_1.gif',1)" onMouseUp="MM_upImages('font-m','','img/btn_middle_1.gif',1)" ><img src="img/btn_middle_0.gif" name="font-m" width="34" height="32" border="0"></a>

<a href="#" onMouseOut="MM_swapImgRestore()" onMouseDown="MM_Restore();MM_swapImage('font-l','','img/btn_large_1.gif',1)" onMouseUp="MM_upImages('font-l','','img/btn_large_1.gif',1)" ><img src="img/btn_large_0.gif" name="font-l" width="34" height="32" border="0"></a>

のようにすればよいでしょう

ただ、このままだと、IE5では動作しないMethodが含まれていることと、処理に無駄が多いので、プログラム全体を見直した方がいいかもしれません

id:finnapple

ご回答して頂いた内容でうまくいきました、ありがとうございます。IE5で動作しないのは問題ですね、javascriptに関してははほとんど素人でなのでプログラムをどう直せばいいのかわかりませんが、少しづつ勉強して改善したいと思います。ありがとうございました。

2006/03/18 20:54:21
  • id:aki73ix
    http://nifberry.727.net/test/hatena183.htm
    もうすこし、簡略化したJavaScriptを書いてみました
    参考にしてみてください
  • id:finnapple
    大変分かりやすかったです!ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません