• ベストアンサー

画像メニューの開閉

JavaScriptで画像メニューの開閉を行いたいのですが、 うまく動きません。 「aaa」が閉じていた場合には「aaa」を開くまではできたのですが、 「bbb」を閉じるという1行を追加したら動かなくなりました。 どなたかご教授願います。 【JavaScript】 function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == '') document.getElementById("aaaSub").innerHTML = '<img src="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; else document.getElementById("aaaSub").innerHTML = ''; } 【HTMLソース】 <ul> <li><a href="#" onClick="showSubmenu01()"><img src="img/menu_aaa.gif" /></a></li> <li><div id="aaaSub"></div></li> <li><div id="bbbSub"><img src="bbb.gif" /></div></li> </ul>

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

  • ベストアンサー
  • sh_hirose
  • ベストアンサー率66% (56/84)
回答No.4

以下のHTMLをそのままコピペして実行してみてください。 うまくいくならJavaScriptの配置の問題や、例えば全角スペースが入っているなどが考えられます。 IE7で検証しましたがうまくいきました。 この程度のスクリプトがIE8でできなくなるってことはないと思うので・・・。 <html> <head> <title>sample</title> <script type="text/javascript"> <!-- function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == '') { document.getElementById("aaaSub").innerHTML = '<img src="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; } else { document.getElementById("aaaSub").innerHTML = ''; } } // --> </script> </head> <body> <ul> <li><a href="#" onClick="showSubmenu01()"><img src="img/menu_aaa.gif" /></a></li> <li><div id="aaaSub"></div></li> <li><div id="bbbSub"><img src="bbb.gif" /></div></li> </ul> </body> </html>

Fmcse
質問者

お礼

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

その他の回答 (3)

回答No.3

スクリプトエラーなのか、機能が実現しないのか... もし後者なら"画像メニューの開閉"では説明不足ではないですか? ※yyr446さんが言うようにこのコードにエラーはないはずです

Fmcse
質問者

お礼

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

Fmcse
質問者

補足

すみません。スクリプトエラーです。 IE8とOperaで検証しているのですが、 下記のようなエラーとなり、正常に動かないのです。 ------------------------------ メッセージ: Syntax error ライン: 6 文字: 1 ------------------------------ document.getElementById("bbbSub").innerHTML = ''; の1行を削除すると正常に動くのですが……。 アドバイスいただけたら幸いです。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

このソースを見る限りおかしいところは、無いはずですが、 <img src="bbb.gif" />は<img src="img/bbb.gif" />でなくてもよいのですね。 このソースを私のサイトに貼って(画像は変えました)、IE7.0とFireFox3.0で試しましたがエラーは出ませんでした。

Fmcse
質問者

お礼

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

Fmcse
質問者

補足

IE8とOperaで検証しているのですが、 下記のようなエラーとなり、正常に動かないのです。 ------------------------------ メッセージ: Syntax error ライン: 6 文字: 1 ------------------------------ document.getElementById("bbbSub").innerHTML = ''; の1行を削除すると正常に動くのですが……。 アドバイスいただけたら幸いです。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

 { } が足りません。 function showSubmenu01() { if(document.getElementById("aaaSub").innerHTML == ''){ document.getElementById("aaaSub").innerHTML = '<imgsrc="aaa.gif">'; document.getElementById("bbbSub").innerHTML = ''; } else { document.getElementById("aaaSub").innerHTML = ''; } }

Fmcse
質問者

お礼

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

Fmcse
質問者

補足

{ } 忘れてました。失礼しました。 ただ { } をつけてもやっぱりエラーになってしまいます。 他におかしいところがあったら教えていただけないでしょうか?

関連するQ&A